我有,例如,四QRadioButton
小號rb1
,rb2
,rb3
,rb4
。我設置rb1
和rb3
檢查:分組一個QRadioButton成幾個QButtonGroups
rb1->setChecked(true);
rb3->setChecked(true);
而且,我有四個QButtonGroup
S:bg12
,bg34
,bg13
和bg24
,使前兩個非排他性(它們是默認情況下):
bg13->setExclusive(false);
bg24->setExclusive(false);
第一種情況:我補充rb1
和rb2
到bg12
,並rb3
和rb4
到bg34
。然後,我將所有按鈕添加到網格佈局,顯示小部件以及所有這些東西,一切按預期工作(兩個按鈕處於活動狀態,並且一行中的按鈕排除其行中的另一個按鈕)。
第二種情況:我補充rb1
和rb2
到bg12
,並rb3
和rb4
到bg34
。然後我將rb1
和rb3
添加到bg13
,rb2
和rb4
到bg24
。現在它不像我預期的那樣工作,它們都像«免費»按鈕一樣,並且我可以選中/取消選中它們中的任何一個。那麼,我做錯了什麼?
UPD:我也有QPushButton
S(所以,沒有排他性和這樣的東西)試了一下,它只是看起來像,如果按鈕已經處於QButtonGroup
,我添加它做一個又一個,這不是不屬於第一個:(
我想,你可能會想知道爲什麼我會做這個奇怪的東西 - 我會解釋我想保留一對QRadioButton
s的矢量,並在每一對中的按鈕必須排除在其對中的另一個(它們代表兩個異狀態),所以想在每對組按鈕的獨家QButtonGroup
(在示例中一樣bg12
和bg34
),並且還添加,例如,所有每對另一QButtonGroup
(非排他的,像bg13
從示例)的第一按鈕,並給它的ID。所以,我將能夠通過QButtonGroup
類爲我們提供的信號和id之一處理狀態變化。也許有一個更簡單的方法?
哇,QSignalMapper正是我需要的。非常感謝! – karlicoss