-1

几天前,我遇到了必须在 for 循环中选中/取消选中 QRadioButton 的情况。这是链接Waiting in for loop until QRadioButton get check every time? 在执行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);

我不确定这个问题发生在什么时候?

4

1 回答 1

0

好的,问题不在于 QEventloop,而是在开发 Radio Pass 的 UI 时,额外的 pass 区域遮蔽了 Fail Radio。

在此处输入图像描述

于 2016-11-25T12:28:48.893 回答