在从QPushButton派生的类上应用样式表的正确方法是什么?

时间:2012-03-21 15:18:41

标签: qt

我写了一个派生QPushButton的简单类,并尝试在其上应用样式表。 但它不起作用。 我读了qt doc,但我找不到重点。 任何人都可以帮助我吗?

class Button : public QPushButton
{
Q_OBJECT

public:
    Button(QWidget * parent = NULL);
    ~Button();
    protected:
    void keyPressEvent(QKeyEvent * event);

};


Button * btn = new Button(rootframe);
// I tried the following ways, all NG.
btn->setStyleSheet("background: white; color: blue;");
btn->setStyleSheet("QPushButton{background: white; color: blue;}");
btn->setStyleSheet("Button {background: white; color: blue;}");

谢谢..

1 个答案:

答案 0 :(得分:2)

来自Qt Style Sheets Reference

  

警告:如果您只在QPushButton上设置背景颜色,   除非您将border属性设置为某些属性,否则可能不会显示背景   值。这是因为,默认情况下,QPushButton会绘制本机   边框与背景颜色完全重叠。

这应该有效

btn->setStyleSheet("background-color: white; color: blue; border: none");

建议您查看QPushButton stylesheets example