用下面的代碼我試圖使用QStyle.drawControl()
呈現一個紅色的按鈕:如何使用QStyle.drawControl()呈現紅色按鈕?
#include <QtCore/QtCore>
#include <QtGui/QtGui>
class Widget : public QWidget
{
virtual void paintEvent(QPaintEvent* event)
{
QStyleOptionButton opt;
opt.palette = QPalette(Qt::red);
opt.state = QStyle::State_Active | QStyle::State_Enabled;
opt.rect = QRect(50, 25, 100, 50);
QPainter painter(this);
style()->drawControl(QStyle::CE_PushButton, &opt, &painter);
}
};
int main(int argc, char** argv)
{
QApplication app(argc, argv);
Widget w;
w.resize(200, 100);
w.show();
return app.exec();
}
不過,我得到以下結果:
如何渲染使用QStyle.drawControl()
一個紅色的按鈕?
我使用Qt 4.8.1和Windows XP Visal Studio 2010中。
你設置這個按鈕一些文字?也許「Qt的::紅色」正在下降成文本顏色,背景/幀顏色 – 2012-08-10 13:07:58
@Kamil Klimek:「QPalette :: QPalette(QT :: GlobalColor按鈕)」的文檔的狀態「構造從按鈕顏色的調色板。其他顏色將根據此顏色自動計算。窗口也是按鈕的顏色。請參閱http://qt-project.org/doc/qt-4.8/qpalette.html#QPalette-3。 – user763305 2012-08-10 16:40:17
@Kamil Klimek:我還測試了構建調色板的其他幾種方式,但似乎不管調色板是什麼,該按鈕結束有相同的顏色。 – user763305 2012-08-10 16:41:50