-1

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

如您所见,状态正在发生变化,但取消选中按钮后仍为蓝色。

在此处输入图像描述

4

1 回答 1

0

此行为是由 KDE5 的默认应用程序样式 Breeze 引起的。我发现的唯一解决方法是将样式更改为其他样式(在我的情况下是氧气)。我也尝试更新 Plasma,但没有任何成功。

于 2017-08-17T08:49:48.990 回答