【PyQt】记录一次完整程序设计及打包,并说说一些坑

工具:Pycharm

目录

1. 使用QtDesigner设计程序页面(一个输入框、一个输出框、一个按钮、设置背景图片)

2. 使用PyUIC转为python文件

3. 处理好按钮的事件监听、业务处理

4. pyinstaller打包成exe

5. 生成一个快捷方式,方便访问


1. 使用QtDesigner设计程序页面(一个输入框、一个输出框、一个按钮、设置背景图片)

首先file->settings->Tools添加工具

(原因嘛,一个是方便弄完的文件在项目工程目录直接生成,方便;另一个是不用每次都要去找到原始位置,打开软件):

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第1张图片

添加QtDesigner:

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第2张图片

其中Program点击目录自行找,我的是D:\python\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe。没有的童鞋请装好pyqt5_tools库再找。

添加PyUIC:

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第3张图片

arguments设为-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

其中Program点击目录自行找,我的是D:\python\python.exe

接着就可以右键工程目录,进入QtDesigner

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第4张图片

背景图片先铺个ListView上去即可,设置stylesheet的背景样式:

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第5张图片

等生成python文件后改为self.listView.setStyleSheet("background-image: url(1.jpg);")

这里注意,在QtDesigner设置背景图片,需要你先创建qrc文件,再引用图片,才能显示图片。但是到pycharm,看不到图片的,需要将路径改为./project/1.jpg,其中project是你的项目,里面放着1.jpg以及你的python文件,这样才能显示图片。但是打包的时候,这样图片会找不到,所以直接点,写成1.jpg,打包完图片放文件夹里面即可

2. 使用PyUIC转为python文件

搞完QtDesigner,保存,在项目中找到ui文件,右键运行PyUIC,将ui文件转为python文件:

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第6张图片

python文件末尾加上:

if  __name__=="__main__":
    import  sys
    app=QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

3. 处理好按钮的事件监听、业务处理

添加按钮监听:

# 绑定点击事件
self.pushButton.clicked.connect(self.analyse)

 填写业务逻辑:

     # 按钮监听
    def analyse(self):
        input = self.textEdit.toPlainText()  # 获取文本框内容
        if len(input) < 20:
            self.textEdit_2.setText('请输入正确的古诗词,再进行分析!')
            return
        # ...

4. pyinstaller打包成exe

系统资源管理器打开到pycharm项目目录下,按shift+鼠标右键,打开powershell(命令行也行,切换到该目录咯)。输入pyinstaller -D 你的文件名.py进行打包(例如我的是pyinstaller -D main.py)。这样的好处是,-D可以将打包成的exe拖到命令行,查看错误;如果你用的参数是-F,则打包成一个exe,而且拖到命令行没法看错误,不推荐。

打包完看dist目录里的即可,将上述的1.jpg背景图片放到exe同级目录即可

5. 生成一个快捷方式,方便访问

注意需要设置相对路径,如果你右键生成exe的快捷方式,那么自动生成的是绝对路径。

相对路径的快捷方式,最好不用资源管理器的explorer.exe的形式,而用命令行的形式,我的是:%windir%\system32\cmd.exe /c start main\main.exe

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第7张图片

起始位置不要设置

其中,main是dist目录里的项目文件目录,要的也就是这个,快捷方式也放在同级目录下,而main.exe则是执行的文件。

【PyQt】记录一次完整程序设计及打包,并说说一些坑_第8张图片

当然经测试,1.jpg还需放快捷方式同级目录才行。

你可能感兴趣的:(Python)