大家好,又见面了,我是你们的朋友全栈君。
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