一步步学Qt,第七天-QPainter绘图QRect定位问题
2011-08-31 08:33
302 查看
一步步学Qt,第七天-QPainter绘图QRect定位问题
昨天工作室没电,现在才能继续Qt。
一直对Qpainter的绘图功能不断研究中,很多的不明白,因为他的工作往往就是几个class的综合,看一个demo,在对整个demo的结构不是很明白的前提下,这个是很头疼的。
每一个class之间的相互作用都不了解,自然是不能其意的。我看到的关于QPainter的demo,都是将绘图放到paintEvent的一个函数中去,在这里通过重新实现paintEvent的方法绘制图形。我一直解决着使用QPainter::drawtext来绘制一个文本的问题。看到drawtext的声明:
void QPainter::drawText ( const QPointF & position, const QString & text )
void QPainter::drawText ( const QPoint & position, const QString & text )
void QPainter::drawText ( const QRectF & rectangle, int flags, const QString & text, QRectF * boundingRect =
0 )
void QPainter::drawText ( const QRect & rectangle, int flags, const QString & text, QRect * boundingRect =
0 )
void QPainter::drawText ( int x, int y, const QString & text )
void QPainter::drawText ( int x, int y, int width, int height, int flags, const QString & text, QRect * boundingRect =
0 )
void QPainter::drawText ( const QRectF & rectangle, const QString & text,
const QTextOption & option = QTextOption() )
我使用drawtext来绘制文本的时候最大的问题就是绘制位置的定位问题,昨晚看了C++ GUI qt 4那本书的一个例子(P166),于是写下了如下的程序:#include "dialog.h" #include "ui_dialog.h" #include <QDebug> #include <QPainter> #include <QPoint> Dialog::Dialog(QWidget *parent) : QDialog(parent), ui(new Ui::Dialog) { ui->setupUi(this); ui->widget->size(); qDebug() << ui->widget->size().width()<<ui->widget->height()<<this->width(); } Dialog::~Dialog() { delete ui; } void Dialog::paintEvent(QPaintEvent *e) { QPainter painter(this); QPoint pointer(ui->widget->size().width()-150,ui->widget->size().height()); QFont font("Times", 100, QFont::Bold); font.setItalic(true); painter.setFont(font); QPen pen(Qt::red); painter.setPen(pen); painter.drawText(pointer,tr("hello")); this->update(); }
运行效果:
一直在寻求一直和窗体在屏幕位置,以及窗体本身大小的没有联系的定位方式,这个方法算一种,不是希望可以找到更好的办法,有那个朋友知道的,请分享,谢谢。
相关文章推荐
- 一步步学Qt,第七天-QPainter绘图QRect定位问题
- 一步步学Qt,第七天-QPainter绘图QRect定位问题
- 模仿QtOpenGL例子VowelCube时遇到的三维和Qt绘图引擎QPainter混合问题
- 一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题
- Qt中2D绘图问题总结(二)----------坐标系统
- Qt QPainter 绘图
- 在Qt Widget中使用QPainter之外的引擎进行绘图
- 一步步学Qt,第四天-Qt 建立MainWindow遇到的问题,也是常见GUI工具的问题
- Qt之图形(QPainter的基本绘图)
- 一步步学Qt,第六天-QPainter应用
- Qt QPainter中坐标系变换问题
- Qt中绘图坐标QPainter,Viewport与Window的关系
- QT程序发布的一个问题:无法定位程序输入点与动态链接库QtCore4.dll
- 一步步学Qt,第六天-QPainter应用
- Qt中绘图坐标QPainter,Viewport与Window的关系
- QT——绘图事件、鼠标事件、QPainter、键盘事件、光标样式、登录框密码回显模式、移除字符串前后的空白、对话框accept()
- Qt中的QPainter问题
- QT使用GDI和OpenGL绘图,相比QPainter绘图降低CPU占用率
- Qt QPainter绘图原理
- Qt QPainter绘图原理