为QPushButton添加样式取消选中状态

时间:2017-08-16 15:47:18

标签: c++ qt plasma

我开始了新的空项目(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();});

正如您所看到的状态正在发生变化,但取消选中按钮后仍保持蓝色。

enter image description here

1 个答案:

答案 0 :(得分:0)

此行为是由KDE5的默认应用程序样式引起的,即Breeze。我发现的唯一解决方法是将样式改为其他东西(在我的例子中是Oxygen)。 我也试过更新Plasma,但没有任何成功。