好的,我想我有我需要的。問題在於如何根據發件人的身份設置組中按鈕的啓用狀態?
我有可能被控制的x個線程數。在每個QButtonGroup按鈕的對象名排序如下:
pushButton_start_x
pushButton_stop_x
pushButton_status_x
pushButton_pause_x
pushButton_resume_x
在我的Python代碼,我有以下的解釋:
# Each key represents a button type that requires setting the group's
# buttons enabled state
# Each key's values map to these buttons: [start,stop,status,pause,resume]
testManagerButtonEnableStates = {}
testManagerButtonEnableStates["start"] = [False,True,True,True,False]
testManagerButtonEnableStates["stop"] = [True,False,True,False,False]
testManagerButtonEnableStates["pause"] = [False,False,True,False,True]
testManagerButtonEnableStates["resume"] = [False,True,True,True,False]
這個程序將基於所發送的對象名狀態:
# Note that the status button does not require any action here
def setButtonGroupEnabledStates(self):
buttonType = str(self.sender().objectName().toAscii()).split('_')[1]
if buttonType == "status":
return
i = 0
for button in self.sender().group().buttons():
button.setEnabled(self.testManagerButtonEnableStates[buttonType][i])
i+=1
也許不是最高效的,但它讓我在那裏...