2014-03-01 7 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 버튼을 모두 클릭하면 체크 된 것처럼 보입니다. 이전 버튼을 선택하지 않은 상태로 설정하는 방법을 알아낼 수 없어서 현재 상태가 선택된 버튼에만 체크 상태 스타일이 적용되고 나머지 버튼에는 체크되지 않은 스타일이 설정됩니다.

답변

2

여기서 해협 솔루션은 QButtonGroup에 3 개의 버튼을 모두 추가하고이를 독점으로 설정하는 것입니다. Qt는 자동으로 원하는대로 처리합니다.

+0

대단히 감사합니다. 이것은 그것을했다 :) – user2840647