2014-03-01 124 views
0

我正在使用Qt框架编写应用程序。我使用的是自定义的CSS文件的样式我的部件和组件,像这样:单击按钮上的Qt C++事件

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个按钮,它们看起来像被检查。 我似乎无法弄清楚如何将前一个按钮设置为未选中状态,因此这仅适用于已检查状态样式的按钮I CURRENTLY,并将未选中的样式设置为其余按钮。

回答

2

这里的strait解决方案是将所有三个按钮添加到QButtonGroup并将其设置为独占。这样Qt会自动做你想做的。

+0

非常感谢。这样做:) – user2840647