我开始了新的空项目(QWidget Application)。下面我把一个代码插入到mainwindow.cpp
中for(int i = 0 ; i < 10 ; i++){
QPushButton* b = new QPushButton();
b->setCheckable(true);
b->setChecked(false);
ui->centralWidget->layout()->addWidget(b);
b->setStyleSheet(
"QPushButton { background-color: red; }\
QPushButton:checked { background-color: black;}");
connect(b, &QPushButton::toggled, [b](){qDebug() << "State changed to" << b->isChecked();});
正如您所看到的状态正在发生变化,但取消选中按钮后仍保持蓝色。
答案 0 :(得分:0)
此行为是由KDE5的默认应用程序样式引起的,即Breeze。我发现的唯一解决方法是将样式改为其他东西(在我的例子中是Oxygen)。 我也试过更新Plasma,但没有任何成功。