- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我将如何绘制矩形?
我尝试了两种不同的方法;
void MyWidget::paintEvent(QPaintEvent *)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::black);
QRect rect = QRect(290, 20, 70, 40);
painter.drawText(rect, Qt::AlignCenter,
"Data");
painter.drawRect(rect);
}
void MyWidget::draw()
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::black);
QRect rect = QRect(290, 20, 70, 40);
painter.drawText(rect, Qt::AlignCenter,
"Data");
painter.drawRect(rect);
}
最佳答案
绘画事件是绘画系统在需要重绘窗口小部件时调用的方法。这就是为什么简单地命名自己的方法不起作用的原因。油漆系统从不调用它。
您确实应该使用QPaintEvent
。它为您提供了需要绘制的矩形。该矩形将基于窗口小部件的大小,因此,不要在绘画事件中使用显式矩形,而将窗口小部件设置为正确的大小。如果您的小部件移动,调整大小等,将会生成一个绘画事件。
void MyWidget::paintEvent(QPaintEvent *event)
{
QRect rect = event->rect();
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::black);
painter.drawText(rect, Qt::AlignCenter,
"Data");
painter.drawRect(rect);
}
void MyWidget::paintEvent(QPaintEvent *event)
{
QRect rect = event->rect();
draw(rect);
}
void MyWidget::draw(QRect &rect)
{
QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing);
painter.setPen(Qt::black);
painter.drawText(rect, Qt::AlignCenter,
"Data");
painter.drawRect(rect);
}
QPixMap pix(200,100);
QPainter painter(&pix);
// do paint operations
painter.end()
someLabel.setPixmap(pix)
关于Qt初学者QPainter和QRect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14101297/
我收到以下代码警告: QRect rct ( 0, 0, rect().width(), rect().height() ); warning: passing `qreal' for convert
我有一个任务:当鼠标光标进入 QRect 对象时,应该绘制它。几个小时后,我做了这个。 void myObj::mouseMoveEvent(QMouseEvent* event){ in
我想在按下鼠标左键时生成一个 Bullet (QRect)。 此时你唯一能做的就是移动和旋转 QRect“Spieler”。我希望你能帮助我并解释如何做到这一点。 这是我画 QRect“Spieler
以下片段导致我的编译产生“错误:将‘const QRect’作为‘void QRect::setHeight(int)’的‘this’参数传递会丢弃限定符 [-fpermissive]”。 我该如何解
我有一个带有一堆 QRect 的 QGraphicsScene。我使用 QRects 作为 QPixmap 的叠加层来显示检测到的对象。我需要清除场景中的所有矩形,但不知道如何清除。 在不重绘图像的情
我试图通过将 QRect 变成 QPolygon 来检查 QPolygon 和 QRect 之间的碰撞。但是,矩形也可能有我添加的旋转,所以我想知道如何将 QRect 变成 QPolygon 并考虑到
我创建了一个 QRect 对象 QRect ellipse(10.0 , 10.0 , 10.0 , 10.0); QPainter painter(this); painter.setBrush(Q
我的 QRect 对象是一个固定大小的纯文本容器,当文本太多时,我会截断文本并在末尾拖尾 ... 。例如,Longlonglonglong 被截断为 Longlong...。但是当鼠标指针悬停在矩形上
我有一个 QRect,我尝试使用 RegExpFilter 在 qml 中对其进行过滤QRect(1220,50, 500, 300) 我想这样匹配它们:QRect([0-2000], [0-500]
计算QRect 的qHash 值的最佳方法是什么?我需要使用 QRect(可能还有 QRectF)作为 QCache 的键。现在我正在使用这样的东西: inline uint qHash(const
操作系统::win_xp_sp3 Qt::4.6 是否可以在 QRect 中使用 QMouseEvent?我有父小部件,里面是一些带有文本“状态未更改”的 QLabel。 此外,在父部件内部是从 QR
我有一个 widget在 myWidget 的中心我用了 mousePressEvent()在 myWidget抓取鼠标按下事件。我要隐藏myWidget在鼠标按下时而不是在 widget 内部按下时
我有一个大字符串,一个固定字体和一个固定矩形来绘制该字符串。 如果字符串不适合,我想知道适合该矩形的子字符串的长度 如果字符串确实适合,那么我想知道边界矩形的高度 我在网上搜索了一整天,但一无所获。
我正在尝试使用 Qt 制作游戏,但我无法加载图像。 #include "mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWin
我可以将 QCursor 设置到 GLWidget 的中心,即使该 GLWidget 位于布局或拆分器中。但是,我想用 qPainter 在 2D 中绘制一些东西,而不是将光标形状设置在屏幕中央。 我
我想在 PyQt 中使用 QRubberBand 和 QRect 通过选取框矩形选择来选择或激活一堆按钮。 如果有人能告诉我如何实现此功能,我将不胜感激? 最佳答案 这是一个简单的演示: from P
一些背景 - 假设您有 QGraphicsScene,并且只有一个 View ,它与场景成 1-1 比例。 你有一个 QRect A,它代表场景的外部 View ,具有预定义的像素大小。 你有一个 Q
我是一名优秀的程序员,十分优秀!