我有2个单选按钮创建(内QMainWindow类),如:
def dtype_radiobuttons(self):
layout = QHBoxLayout()
rb1 = QRadioButton("complex")
rb1.toggled.connect(lambda: self.update_image("dtype", rb1.text()))
self.real_dtype_rb = QRadioButton("real", self)
self.real_dtype_rb.toggled.connect(lambda: self.update_image("dtype", self.real_dtype_rb.text()))
self.btngroup.append(QButtonGroup())
self.btngroup[-1].addButton(self.real_dtype_rb)
self.btngroup[-1].addButton(rb1)
rb1.setChecked(True)
layout.addWidget(rb1)
layout.addWidget(self.real_dtype_rb)
layout.addStretch()
return layout
def library_radiobutton(self):
layout = QHBoxLayout()
self.cvnn_library_rb = QRadioButton("cvnn", self)
self.cvnn_library_rb.toggled.connect(lambda: self.update_image("library", self.cvnn_library_rb.text()))
rb2 = QRadioButton("tensorflow", self)
rb2.toggled.connect(lambda: self.update_image("library", rb2.text()))
self.btngroup.append(QButtonGroup())
self.btngroup[-1].addButton(rb2)
self.btngroup[-1].addButton(self.cvnn_library_rb)
self.cvnn_library_rb.setChecked(True)
layout.addWidget(self.cvnn_library_rb)
layout.addWidget(rb2)
layout.addStretch()
return layout
我想要使它 不可能 选择的 complex
选项d型组和单选按钮 tensorflow
选择按钮的图书馆单选按钮. 留下3个了4个可能的组合。 所以,如果我选择 complex
和库 tensorflow
我希望自动改变图书馆 cvnn
. 我试图实现这样的:
def update_image(self, key, value):
if value == "complex":
if hasattr(self, 'cvnn_library_rb'): # It wont exists if I still didnt create the radiobutton.
self.cvnn_library_rb.setChecked(True) # Set library cvnn
elif value == "tensorflow":
if hasattr(self, 'real_dtype_rb'):
self.real_dtype_rb.setChecked(True) # Set real dtype
... Do the other stuff I need to do.
奇怪的是,它的实际工作的意义,例如,如果我在 complex
激活和选择 tensorflow
,选择按钮改变 real
(我想要什么!) 但 tensorflow
没得选择! 我需要选择它再次,如果制作 self.real_dtype_rb.setChecked(True)
取消选择的选择按钮我点击。 (很奇怪如果你问我)。
的
hasattr
用于因根据以我打电话 功能,有一些单选按钮将会被造之前 其他的,所以它可能不存在。此 是一个选项,我正在考虑,但它禁止选择按钮 小组,而不是改变他们的国家(没什么我喜欢).