pyqt退出窗口_win10电脑软件闪退

2022-09-27 17:23:14 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

1. 使用qt designer创建窗口界面

这个都很熟悉了,就不重复说明了。(自行百度)

2. pyqt将 .ui 文件转成python代码

cd到 .ui文件的目录,使用指令即可完成。得到一个py文件(一个类)

红色部分是我自己加上去的,只是为了更好看懂代码,调试代码。

3. 运行pyqt生成的python代码,生成界面

这里,需要添加几行代码!直接在Ui_Dialog类的py文件尾部添加如下代码:

代码语言:javascript复制
if __name__ == "__main__":
    app = QApplication(sys.argv)
    w = Ui_Dialog()
    form = QWidget()
    w.setupUi(form)
    form.show()
    sys.exit(app.exec_())
    pass

点击运行即可!

4. 接下来是重点,闪退的问题

  • 使用qt必然是想做成一个exe程序,总不可能一个py文件就把所以程序放完吧。这调试过程会非常麻烦而且痛苦。那么如何在其他py文件中调用这个类,并创建窗口体呢? 研究上述代码可以发现:主要就是使用 setupUi(form) 这个方法。 那么,如果你想偷懒,直接在某个函数中创建类后,调用 setupUi( QWidget() ) ,那么恭喜你,凉凉!此时就会出现闪退的情况。

这里有个教训分享:

在创建窗体的时候,应该在主函数中以此调用:(下面三个)

代码语言:javascript复制
app = QApplication(sys.argv)
form = QWidget()   #一定要单独赋予变量,不能偷懒,否则闪退!
(任意方法调用到这个即可)w.setupUi(form)
sys.exit(app.exec_())

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/175209.html原文链接:https://javaforall.cn

0 人点赞