【发布时间】:2013-05-07 06:01:16
【问题描述】:
我正在 Qt-Creator 5 中创建一个模拟时钟,现在我想将数字绘制到屏幕上,但它不起作用?
painter.drawText(QPoint(50, 50), "12");
我完全不明白为什么它不起作用。当我用.drawEllipse 替换代码中的这一行时,它工作正常。所以位置/颜色不会是问题,除非drawText 不会使用setBrush() 颜色。
有人知道如何使用QPainter在屏幕上正确绘制文本吗?
//previous code only draws blue ellipses with white background
QColor secondColor(240,0,0);
painter.setPen(Qt::NoPen);
painter.setBrush(secondColor);
painter.save();
QFont font=painter.font() ;
font.setPointSize(18);
painter.setFont(font);
painter.drawText(QPoint(50, 50), "12");
因为在paintEvent的末尾,所以不能透支
【问题讨论】:
-
可能是您的笔颜色。可能是你在上面画了什么。如果没有一段代码可以重现您的问题,就真的无法知道您的错误在哪里。
-
我已经添加了一些代码,但它在paintEvent的末尾,所以过度绘制不会是问题。颜色是红色,也没有问题,因为其他都是白色的
-
painter.setPen(Qt::NoPen);? -
我猜在 QT 的模拟时钟教程中,笔总是设置为
Qt::NoPen,并且在没有 drawText 代码 sn-p 中我看到了setPen。现在通过将其设置为红色来检查它并工作。谢谢
标签: c++ qt qt5 qpainter drawtext