我是靠谱客的博主 朴实蛋挞,最近开发中收集的这篇文章主要介绍一步步学Qt,第七天-QPainter绘图QRect定位问题,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一步步学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 & textQRectF * boundingRect = 0 )

void QPainter::drawText ( const QRect & rectangle, int flags, const QString & textQRect * 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 & textQRect * 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定位问题所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部