저는 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
옵션의 dtype 라디오 버튼 그룹과 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
이기 때문에 사용 순서에 따라 나는 전화 기능,일부 라디오 버튼 만들기 다른다,그래서 그것은 없을 수도 있습니다.이 옵션이 나가려 하지만 그것은 비활성화하는 라디오 버튼 그룹을 변경하는 대신 그들의 상태(지아보세요).