Qt样式表语法不起作用?

时间:2013-05-31 13:17:04

标签: qt stylesheet qtstylesheets

我正在使用Qt 5.0.1。我想使用样式表语法来自定义小部件及其元素的功能。

但有些语法如QLineEdit { color: red }

QPushButton#evilButton:pressed {
     background-color: rgb(224, 0, 0);
     border-style: inset;
 }

不起作用,编译器会出错。

我改变了一些语法并得到了答案。例如:

QPushButton#evilButton {
 background-color: red;
 border-style: outset;
 border-width: 2px;
 border-radius: 10px;
 border-color: beige;
 font: bold 14px;
 min-width: 10em;
 padding: 6px;

}

转换为:

mypushbutton->setStyleSheet("background-color:purple;"
                     "border-style:inset;"
                     "border-width: 4px;"
                     "border-color: green;"
                     "border-radius: 10px;"
                     "font: bold 14px;"
                     "min-width: 10em;"
                     "padding: 6px;"
                     );

实际上我使用了另一个函数来做到这一点。但是我无法更改第一个代码而不知道该怎么做......我应该怎么做?我应该include什么或其他东西是问题?我使用this页面来学习样式表语法。即使我自己的Qt的例子不起作用,只是错误引起...... !!! ???

1 个答案:

答案 0 :(得分:7)

试过你的例子,它适用于Qt5

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    this->setStyleSheet(
                "QPushButton#evilButton {"
                "background-color: red;"
                "border-style: outset;"
                "border-width: 2px;"
                "border-radius: 10px;"
                "border-color: beige;"
                "font: bold 14px;"
                "min-width: 10em;"
                "padding: 6px; }"
                );
}

btw我将qss存储在文件中并从中加载样式