gpt4 book ai didi

python - 等待循环直到每次都检查 QRadioButton ?

转载 作者:太空宇宙 更新时间:2023-11-03 15:56:08 25 4
gpt4 key购买 nike

我遇到一种情况,我需要从测试人员那里获取 PySide GUI 中每个测试步骤的通过/失败信息。现在,我正在 for 循环中运行测试套件的数据,并尝试在 for 循环中获取 QRadioButton 的当前选中/未选中状态,基于此我将进行进一步的代码处理。我的代码是:-

for i in range(self.ui.hlfDataset_sa_lst.count()):

self.ui.pass_radio.setChecked(False)
self.ui.fail_radio.setChecked(False)

print "command ", str(self.ui.hlfDataset_sa_lst.item(i).text())
print "Run ", str(i)+" is here"
##
self.telnetThread = TelnetThread.SocketTunnel("localhost",2000)
returnCommand = self.telnetThread.communicateSock(str(self.ui.hlfDataset_sa_lst.item(i).text()))
print "returnCommand ",returnCommand
##XML Data structure
result = ET.SubElement(results,"result")
testcasestepno = ET.SubElement(result,"testcasestepno")
testerComment = ET.SubElement(result,"testerComment")
testresult = ET.SubElement(result,"testresult")
mguImage = ET.SubElement(result,"mguImage")

if self.ui.pass_radio.isChecked():
print "TC passed "
testcasestepno.text = str(i+1)
testresult.text = "PASS"
mguImage.text = "NA"
testerComment.text=str(self.ui.testercomment_txt.text())
elif self.ui.fail_radio.isChecked():
if not str(self.ui.testercomment_txt.text()):
QtGui.QMessageBox.critical(self, 'Tester Comment ', 'Tester Comment is desired ', QtGui.QMessageBox.Ok)
self.ui.pass_radio.setChecked(False)
self.ui.fail_radio.setChecked(False)
else:
print "TC failed "
testcasestepno.text = str(i+1)
testresult.text = "FAIL"
testerComment.text = str(self.ui.testercomment_txt.text())
#Save Live Image when failed

我希望 for 循环等待,直到测试人员提供输入,并且我不想休眠或以任何方式使用线程,除非显示方便的方法。此代码运行完整的循环,无需等待输入。

最佳答案

如果我理解正确的话,您需要等到在 if self.ui.pass_radio.isChecked 之前检查其中一个按钮(fail_radiopass_radio) ():行。

在 Qt 中,您可以使用 QEventLoop 来实现此目的,如下所示: waiting for a signal ,您要等待的信号是clicked。在执行之前,您需要将两个按钮的信号连接到 quit 插槽。对于 PyQt 中的信号/槽连接,您可以查看此处: http://pyqt.sourceforge.net/Docs/PyQt5/signals_slots.html

所以你需要写一些类似的东西:

loop = QtCore.QEventLoop()
self.ui.fail_radio.clicked.connect(loop.quit)
self.ui.pass_radio.clicked.connect(loop.quit)
loop._exec()

关于python - 等待循环直到每次都检查 QRadioButton ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40760944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com