qrect的使用 qt_一步步学Qt,第七天-QPainter绘图QRect定位问题

一步步学Qt,第七天-QPainter绘图QRect定位问题

昨天工作室没电,现在才能继续Qt。

一直对Qpainter的绘图功能不断研究中,很多的不明白,因为他的工作往往就是几个class的综合,看一个demo,在对整个demo的结构不是很明白的前提下,这个是很头疼的。

每一个class之间的相互作用都不了解,自然是不能其意的。我看到的关于QPainter的demo,都是将绘图放到paintEvent的一个函数中去,在这里通过重新实现paintEvent的方法绘制图形。我一直解决着使用QPainter::drawtext来绘制一个文本的问题。看到drawtext的声明:

void QPainter::drawText ( constQPointF&position, constQString&text)

void QPainter::drawText ( constQPoint&position, constQString&text)

void QPainter::drawText ( constQRectF&rectangle, intflags, constQString&text,QRectF*boundingRect=

0 )

void QPainter::drawText ( constQRect&rectangle, intflags, constQString&text,QRect*boundingRect=

0 )

void QPainter::drawText ( intx, inty, constQString&text)

void QPainter::drawText ( intx, inty, intwidth, intheight, intflags, constQString&text,QRect*boundingRect=

0 )

void QPainter::drawText ( constQRectF&rectangle, constQString&text,

constQTextOption&option= QTextOption() )

我使用drawtext来绘制文本的时候最大的问题就是绘制位置的定位问题,昨晚看了C++ GUI qt 4那本书的一个例子(P166),于是写下了如下的程序:

#include "dialog.h"

#include "ui_dialog.h"

#include

#include

#include

Dialog::Dialog(QWidget *parent) :

QDialog(parent),

ui(new Ui::Dialog)

{

ui->setupUi(this);

ui->widget->size();

qDebug() << ui->widget->size().width()<widget->height()<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();

}

运行效果:

一直在寻求一直和窗体在屏幕位置,以及窗体本身大小的没有联系的定位方式,这个方法算一种,不是希望可以找到更好的办法,有那个朋友知道的,请分享,谢谢。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值