加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – PyQt窗口在打开后立即关闭

发布时间:2020-12-20 12:30:09 所属栏目:Python 来源:网络整理
导读:大家好.我在尝试打开PyQt窗口时遇到问题. 下面的代码是我原始代码的示例.当我在导入Test中导入模块并运行test.Start()时,出现以下错误: QCoreApplication::exec: The event loop is already running 经过一些研究,我发现这是因为我已经制作了一个QApplicati
大家好.我在尝试打开PyQt窗口时遇到问题.

下面的代码是我原始代码的示例.当我在导入Test中导入模块并运行test.Start()时,出现以下错误:

QCoreApplication::exec: The event loop is already running

经过一些研究,我发现这是因为我已经制作了一个QApplication.

test.py....
import sys

def Start():
    app = QApplication(sys.argv)
    m = myWindow()
    m.show()
    app.exec_()

class myWindow():....

if __name__ == "__main__":
    Start()

那么我读到我可以像这样重写我的代码,它会修复错误:

test.py....

def Start():
    m = myWindow()
    m.show()


class myWindow():....

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    Start()
    app.exec_()

现在我不再获得QCoreApplication :: exec:事件循环已经运行错误,但我的窗口在打开后几乎立即关闭.

解决方法

你需要保持对打开的窗口的引用,否则它会超出范围并被垃圾收集,这也会破坏底层的C对象.尝试:

def Start():
    m = myWindow()
    m.show()
    return m


class myWindow():....

if __name__ == "__main__":
    import sys
    app = QApplication(sys.argv)
    window = Start()
    app.exec_()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读