大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺
1. 使用qt designer创建窗口界面
这个都很熟悉了,就不重复说明了。(自行百度)
2. pyqt将 .ui 文件转成python代码
cd到 .ui文件的目录,使用指令即可完成。得到一个py文件(一个类)
红色部分是我自己加上去的,只是为了更好看懂代码,调试代码。
3. 运行pyqt生成的python代码,生成界面
这里,需要添加几行代码!直接在Ui_Dialog类的py文件尾部添加如下代码:
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() ) ,那么恭喜你,凉凉!此时就会出现闪退的情况。
这里有个教训分享:
在创建窗体的时候,应该在主函数中以此调用:(下面三个)
app = QApplication(sys.argv)
form = QWidget() #一定要单独赋予变量,不能偷懒,否则闪退!
(任意方法调用到这个即可)w.setupUi(form)
sys.exit(app.exec_())
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/175209.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...