-1

数日前、for ループで QRadioButton をチェック/チェック解除しなければならない状況がありました。これは、 QRadioButtonが毎回チェックされるまでループを待っているリンクです? これを実装QEventLoopした後、今日までうまくいきました。QRadioButton(pass) ボタンをクリックできるようになりましたが、2 番目の 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 を開発しているときに、パスの Extra Area が Fail Radio を隠していました。

ここに画像の説明を入力

于 2016-11-25T12:28:48.893 に答える