如何设置QT中inputLine
的填充颜色(而不是笔触颜色)?
例如,我有一个代码负责填充矩形。它看起来像:
QPainter
painter.fillRect(fillRect, Qt::SolidPattern);
的类型为painter
。当然,我知道可以将案例中的颜色指定为第二个参数,但我的程序中有这样的设计,如果我事先设置QPainter
填充颜色会更好一些(默认情况下颜色为黑色)。
我尝试使用painter
,但没有帮助。
嗯。根据{{3}}我们有:
将画家的画笔设置为给定画笔。
画家的画笔定义了如何填充形状。
所以,我希望像
这样的东西painter.setBackground(Qt::yellow);
上班。但事实并非如此。我做错了什么?
调试后发现QRect fillRect;
painter.setBrush(QBrush(Qt::yellow));
painter.fillRect(fillRect, Qt::SolidPattern);
方法根本不更新画笔颜色:
this
颜色setBrush
保持不变:(0,0,0)。
答案 0 :(得分:1)
fillRect()
接受QBrush
作为第二个参数,因此我可以使用它:
painter.fillRect(r, QBrush(Qt::yellow, Qt::SolidPattern));
更新
#include <QApplication>
#include <QLabel>
#include <QPainter>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QPixmap pixmap(128, 128);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
QRect r= pixmap.rect();
painter.setBrush(QBrush(Qt::yellow));
painter.fillRect(r, painter.brush());
painter.end();
QLabel w;
w.setPixmap(pixmap);
w.show();
return a.exec();
}