QT 按钮的样式不起作用,是因为ARM 必加 Fusion 风格
否则 :disabled 样式可能不生效:
cpp
#include <QApplication>
#include <QStyleFactory>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setStyle(QStyleFactory::create("Fusion"));
...
return a.exec();
}
完整示例(可直接复制)
cpp
ui->pushButton->setStyleSheet(R"(
QPushButton {
background-color: #2196F3;
color: white;
border: none;
padding: 10px;
}
QPushButton:pressed {
background-color: #E0E0E0;
color: black;
}
QPushButton:disabled {
background-color: #9E9E9E;
color: #EEEEEE;
}
)");
connect(ui->pushButton, &QPushButton::clicked, this, [=]() {
ui->pushButton->setEnabled(false);
});
ARM / Embedded Qt 常见坑
1️⃣ 没有使用 Fusion 风格(非常重要)
ARM Qt 默认可能不是 Fusion,会导致 QSS 不生效: