मैं 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
radiobutton पुस्तकालय के रेडीयो बटन. छोड़ने के 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)
रद्द चयन की radiobutton मैं पर क्लिक किया. (बहुत अजीब है अगर आप मुझसे पूछें).
के
hasattr
प्रयोग किया जाता है, क्योंकि आदेश के आधार पर मैं फोन कार्यों, वहाँ रहे हैं कुछ रेडीयो बटन बनाया जाएगा कि इससे पहले कि अन्य, तो यह मौजूद नहीं हो सकता है.इस एक विकल्प है, मैं विचार कर रहा हूँ, लेकिन यह अक्षम radiobutton समूह बदलने के बजाय अपने राज्य में नहीं है (मैं क्या पसंद करते हैं).