与 QtCore.QEventLoop() 链接后无法单击 QRadioButton
Posted
技术标签:
【中文标题】与 QtCore.QEventLoop() 链接后无法单击 QRadioButton【英文标题】:Unable to click on QRadioButton after linking it with QtCore.QEventLoop() 【发布时间】:2017-04-09 19:56:06 【问题描述】:几天前,我遇到了必须在 for 循环中选中/取消选中 QRadioButton 的情况。这是链接Waiting in for loop until QRadioButton get checked everytime?
在对此实施QEventLoop
之后,它一直运行良好,直到今天。现在我看到我的 QRadioButton(pass) 按钮允许我点击它,但不能点击第二个 QRadioButton(fail)。
Fail QRadioButton 既不会挂起也不会禁用,只是我无法点击它。
我的 QEventLoop 代码是:
#QLoopEvent
self.loop = QtCore.QEventLoop()
self.ui.fail_radio.clicked.connect(self.loop.quit)
self.ui.pass_radio.clicked.connect(self.loop.quit)
for循环中的代码是:
self.ui.question_lbl.setText(self.saveQuestionslist[i])
self.loop.exec_();
if self.ui.fail_radio.isChecked():
***Some Code**
self.radioExclusive()
elif self.ui.pass_radio.isChecked():
***Some Code**
self.radioExclusive()
这个 radioExclusive 函数可以做到这一点:-
def radioExclusive(self):
self.ui.pass_radio.setAutoExclusive(False);
self.ui.fail_radio.setAutoExclusive(False);
self.ui.pass_radio.setChecked(False)
self.ui.fail_radio.setChecked(False)
self.ui.pass_radio.setAutoExclusive(True);
self.ui.fail_radio.setAutoExclusive(True);
我不确定这个问题是在什么时候发生的?
【问题讨论】:
【参考方案1】:好的,问题不在于 QEventloop,而是在开发 Radio Pass 的 UI 时,Extra Area of pass 掩盖了 Fail Radio。
【讨论】:
以上是关于与 QtCore.QEventLoop() 链接后无法单击 QRadioButton的主要内容,如果未能解决你的问题,请参考以下文章
一种在选择后保持链接粗体的方法(与 a:visited 不同)