python PyQt脚本期间的不同窗口

gijlo24d  于 2023-02-18  发布在  Python
关注(0)|答案(1)|浏览(108)

我为pcba测试开发了一个脚本,它工作得很好。现在我想实现一个非常简单的流程,如下所示:

  • 弹出窗口,仅允许用户开始测试
  • 在没有任何窗口的情况下运行测试(终端正常)
  • 弹出窗口显示测试的通过/未通过结果

我已经在另外两个. py文件中开发了这两个窗口,它们在"独立"运行时没有任何问题。
如果我在脚本中实现这两个,第一个会正常出现,但第二个会打开和关闭得很慢。
测试函数在serial.py中定义,第一个窗口在infoBox.py中定义,最后一个窗口在getResult.py中定义,但不太复杂。
serial.py中,我尝试:

import infoBox
import getResult

[...]

def work():
   [...]

if __name__ == '__main__':
    app1 = QApplication([])
    win1 = infoBox.infoBox("""Turn on 24V alim and press OK.""")
    win1.show()
    app.exec()

    [...]
    work()
    [...]

    app2 = QApplication([])
    generateWindow(esiti=lst_esiti, info=lst_info) # <------- this calls getResult.getResult class and .show() the widget
    win2 = getResult.getResult(lst_esito=lst_esiti, lst_info=lst_info)
    win2.show()
    app.exec()

因此,当serial.py被终端搁置时,infoBox示例出现,work()函数执行它必须执行的操作,getResult示例(它有一个OK按钮要关闭)立即关闭。
可能是两个QApplication的定义错误?我尝试了很多,但我无法管理它。
非常感谢。

tmb3ates

tmb3ates1#

最后我想到了这个。比预期的容易...
解决了打开唯一QApplication并在每次调用子类后调用app.exec()的问题。

相关问题