我正在使用Qt框架编写应用程序。我正在使用自定义CSS文件来设置我的小部件和组件的样式,如下所示:
QPushButton:checked#switchButtonConsole, QPushButton:checked#switchButtonList, QPushButton:checked#switchButtonStats {
background: qlineargradient(spread:reflect, x1:1, y1:0, x2:1, y2:1, stop:0 #151513, stop:1 #101010);
border-right: 1px solid #2E2E26;
padding: 5px;
color: #94948E;
}
我有不同的CSS样式,具体取决于按钮的状态。是选中还是取消选中。
我有3个按钮,默认情况下,第一个按钮设置为选中,其他按钮设置为未选中。这是我用来设置按钮状态的代码:
void MainWindow::on_switchButtonConsole_clicked() {
ui->mainStack->setCurrentIndex(3);
if(!isChecked(ui->switchButtonConsole)) {
ui->switchButtonConsole->setChecked(true);
};
};
我遇到的问题是,如果我点击另一个按钮(记住,我有一个类似上面按钮的功能),按下的前一个按钮将保持在检查状态,因此检查的状态样式将保留。因此,如果我点击所有3个按钮,它们就会被检查。 我似乎无法弄清楚如何将前一个按钮设置为未选中状态,因此这仅适用于按下我当前按下的按钮的已检查状态样式,并将未选中的样式设置为其余按钮。
答案 0 :(得分:2)
此处的海峡解决方案是将所有三个按钮添加到QButtonGroup并将其设置为独占。这样Qt就会自动完成您想要的任务。