2014-03-01 187 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