3
是否可以從運行UI的時刻禁用複選框?打開UI時禁用複選框
我在我的用戶界面中有兩個步驟。我希望步驟2的複選框保持未選中狀態,直到選擇第一步中的方框。
這可能嗎?我無法弄清楚如何用信號/插槽來做到這一點。
在下面的圖片中,我希望步驟2被禁用,直到點擊步驟2中的方框。
是否可以從運行UI的時刻禁用複選框?打開UI時禁用複選框
我在我的用戶界面中有兩個步驟。我希望步驟2的複選框保持未選中狀態,直到選擇第一步中的方框。
這可能嗎?我無法弄清楚如何用信號/插槽來做到這一點。
在下面的圖片中,我希望步驟2被禁用,直到點擊步驟2中的方框。
要默認在Qt Designer中禁用複選框,設置相應啓用屬性(它在QWidget的部分的頂部)。
爲了管理複選框的狀態,我會建議增加各組複選框到QButtonGroup(這可能會在__init__
來完成你的主窗口類):
self.group1 = QtGui.QButtonGroup(self)
self.group1.setExclusive(False)
self.group1.addButton(self.checkboxA)
self.group1.addButton(self.checkboxB)
self.group1.addButton(self.checkboxC)
self.group1.buttonClicked.connect(self.handleStepOneButtons)
# self.group2 = QtGui.QButtonGroup(self)
# ...
# self.group2.buttonClicked.connect(self.handleStepTwoButtons)
然後是處理程序的第1步複選框可以控制第2步複選框的狀態,如下所示:
def handleStepOneButtons(self, button):
checked = (self.group1.checkedButton() is not None)
for checkbox in self.group2.buttons():
checkbox.setEnabled(checked)
謝謝,很好的答案。還有一種方法可以隱藏文本框嗎?即我有一個'?'按鈕,點擊時應顯示帶有信息的文本。啓用Unclicking功能只會將盒子灰色,因爲我想將其完全隱藏起來。如果需要 – user2761786
@ user2761786,我總是可以將此置於另一個問題中。請發佈一個新問題。 – ekhumoro