PyQt5 Demo 第一次尝试

自己的第一篇博客,好激动!

今天兴致来了,就捣鼓了一下久见却没玩过的PyQt,在此做个小笔记,便于今后查找使用。


 1 安装包

安装pyqt5、pyqt5-tools、pyinstaller。

可以在C:\ProgramData\Anaconda3\envs\newroot\Lib\site-packages\pyqt5_tools下找到designer.exe。

但在安装包的过程中,注意pyqt5、pyqt5-tools的版本,否则会导致spyder无法打开。我先装的5.14,后来降到5.10才可以用。


pip install pyqt5==5.10.1

pip install pyqt5-tools==5.10.1.1.4

pip install pyinstaller

2 界面设计

个人感觉与C#没有本质区别,暂时只实验了Button,其他的等以后实验过后再详细记录。

3 Spyder编辑

.ui转为.py后才可以使用Spyder编辑。

#.ui转.py
pyuic5 -o I:\1实验室\其他\QTtest\untitled.py I:\1实验室\其他\QTtest\untitled.ui

新建.py文件,在其中添加如下代码才可使用Spyder运行GUI。QtWidgets.QDialog中的QDialog需要换为适合于你所涉及的GUI窗体,否则会报错;from untitled import Ui_Dialog中,untitled为窗体文件的文件名,Ui_Dialog为窗体名称,记得切换Spyder的路径为untitled.ui所在路径;self.btn_ok.clicked.connect(self.printWords)为自己建的Button调用printWords函数,这一步非必须,是自己添加的。

from PyQt5 import QtWidgets
from untitled import Ui_Dialog

class mywindow(QtWidgets.QDialog, Ui_Dialog):
    def  __init__ (self):
        super(mywindow, self).__init__()
        self.setupUi(self)
        self.btn_ok.clicked.connect(self.printWords)
        
    def printWords(self):
        #显示文字
        words = "finished!"
        self.label.setText(words)

if __name__=="__main__":
    import sys
    app=QtWidgets.QApplication(sys.argv)
    ui = mywindow()    
    ui.show()
    sys.exit(app.exec_())

4 封装


#.exe可执行文件的封装
# -F:将所有内容全部打包成一个exe可执行文件。
# -w:运行生成的exe文件时,不会弹出命令行窗口,而是直接弹出GUI。
pyinstaller -F -w I:\1实验室\其他\QTtest\run.py

封装的时候出现闪退和360提示阻止信息,建议添加信任之后再重新执行封装;闪退可能是由于Dos没有切换到源代码的路径导致的。

看到有的小伙伴说,复制plugins/Platforms的文件到.exe文件旁,但我测试了还是没有用;添加input及os.system("pause")也没有用,还报错“faild execute script run”;然而最后切换目录之后就可行了(没有闪退)。

发布了8 篇原创文章 · 获赞 15 · 访问量 354

猜你喜欢

转载自blog.csdn.net/qq_25742923/article/details/104470797