【问题标题】:Qt - QPainter.DrawText doesnt draw the textQt - QPainter.DrawText 不绘制文本
【发布时间】: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


【解决方案1】:

设置画笔样式

 painter.setPen(colorStyle);

解决了这个问题。感谢马特

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2016-11-04
    • 2012-03-03
    • 2017-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多