2011-08-20 3 views
2

나는 예를 들어 4 개의 , rb2, rb3, rb4을 가지고 있습니다. 또한하나의 QRadioButton을 여러 QButtonGroup으로 그룹화

rb1->setChecked(true); 
rb3->setChecked(true); 

, 내가 네 QButtonGroup의이 : bg12, bg34, bg13bg24을하고, 처음 두 비 독점적 (그들은 기본적으로 있습니다)합니다

bg13->setExclusive(false); 
bg24->setExclusive(false); 
을 나는 rb1rb3 체크 설정

첫 번째 경우 : bg12rb1rb2을 추가하고 bg34rb3rb4을 추가합니다. 그리드 레이아웃에 모든 버튼을 추가하고, 위젯과 그 모든 것들을 보여줍니다. 모든 것이 예상대로 작동합니다 (두 개의 버튼이 활성화되어 있고 한 행의 버튼은 다른 행을 제외합니다).

두 번째 경우 : 나는 bg34rb1rb2bg12, 그리고 rb3rb4를 추가합니다. 그런 다음 bg13rb1rb3을 추가하고 bg24rb2rb4을 추가합니다. 이제 예상대로 작동하지 않습니다. 모두«무료»버튼처럼 작동하며, 그 중 하나를 선택/선택 취소 할 수 있습니다. 그래서 내가 뭘 잘못하고 있니?

UPD : 나는 또한 QPushButton의 (그래서, 아니 독점과 같은 물건)와 그것을 시도했습니다, 그리고 그것은 단지 버튼이 QButtonGroup 이미있는 경우처럼 보이는, 내가 또 다른 하나를 추가, 그것은 아무튼 더 이상 처음에 속하지 않습니다. (

나는 왜 이런 이상한 일을하는지 궁금해 할 것입니다. 나는 설명 할 것입니다. 나는 쌍의 벡터를 각각의 쌍으로 유지하고 싶습니다. (각 쌍의 버튼은 QRadioButton입니다.) (두 개의 독점 상태를 나타냄) 쌍을 제외해야하므로 각 쌍의 단추를 QButtonGroup (예 : bg12bg34)으로 그룹화하고 예를 들어 all 각 쌍의 첫 번째 버튼을 QButtonGroup (예 : bg13과 같이 비 독점적)로 지정하고 id를 지정합니다. 그래서, 나는 하나의 신호로 상태 변경을 처리 할 수있을 것이다. QButtonGroup 클래스는 우리에게 ID를 제공한다. 어쩌면 간단한 방법이 있을까요?

답변

2

QAbstractButton은 구성원으로 QButtonGroup을 보유하므로 버튼은 하나의 그룹에만 속할 수 있습니다.

하지만 비 독점 그룹의 경우 QSignalMapper을 대신 사용할 수 있습니다.

+0

와우, QSignalMapper는 내가 필요한 것입니다. 고마워요! – karlicoss

관련 문제