用python来做GUI界面,还能生成可执行文件(能够在没有python环境的电脑上运行)
需要用到python,第三方库PyQt5,IDE用pycharm(又能编写又能编译运行又能生成可执行文件),用qt或是pyqt5_tools的designer来设计UI界面。
效果
win7或win10,64位或32位,安装顺序可以跟着小星一起。(找个网速快的地方)
提前说明:安装32位(或者64位)pyhton后,pycharm和第三方库也都安装32位(或者64位),Qt可以不用担心,里面带有32位和64位的MinGW
如果后续想要生成可执行文件的,32位python生成的.exe可以在32位或者64位上面都兼容运行,但是64位python生成的在32位电脑上不兼容(目前小星遇到的是这样)
下载一定找官网:https://www.python.org/downloads/windows/
进去就是这样滴
根据本地电脑属性选择,64位选择x86-64,32位选择x86。一般选择“executable installer”用.exe来离线安装,可以下载压缩包或者在线安装。
这里以64位电脑来下载,点击Download Windows x86-64 executable installer,就能等待下载
下载好后双击.exe运行,进入如图界面。选中add python 3.7 to Path(不选中的话后续要自己添加环境变量),install launcher for all users(recommended)为所有用户安装(可选)。然后在选择customize installation自定义安装。
接着是optional features,默认即可,点击next
接着advanced options,勾选前五项后点击install
等待安装,安装成功界面如下
打开命令提示符后,输入python后回车,就会输出当前电脑呢安装的版本信息
只要下载的不是最新的python,pip是铁定要更新一遍的。pip主要是在安装第三方库时用到,不需要单独在网上到处找资源找合适版本的包,非常方便好用。一定要记得更新pip。操作也很简单,用管理员打开命令提示符(别用快捷键,乖乖去菜单下搜命令提示符,右键选择管理员打开),接着输入python -m pip install --upgrade pip回车
(这里我已经是装上最新的了,版本已经是22.0.4)
PyQt5属于python的第三方库了,能用python来调用qt的控件做GUI界面。这里不用纠结采用什么版本,直接上pip,在命令提示符里输入python -m pip install pyqt5回车
安装其他的库也类似这种指令:python -m pip install xxxx(如果报错,尝试管理员运行)
在后面要将项目生成可执行文件,需要用到pyinstaller来生成,所以用pip下载(报错就换管理员运行),在命令提示符中输入python -m pip install pyinstaller回车后等待安装成功。
如果单纯是入门pyqt或是简单运用的话,可以用pyqt5_tools包代替qt,而且下载很方便(用pip在命令提示符中输入:python -m pip install pyqt5_tools),它里面带有designer,可以进行控件设计,但是也仅仅可以用控件拖拽,设计界面,布局等简单操作。
而QT中,可以查询控件的方法和类型等,含有的东西会更加全面会更好用,但下载安装就较多,适合有往这方面长期发展专研的小伙伴(仅个人观点,勿喷)
官方下载很慢,建议找国内镜像。这里选择中国科技技术大学的地址:http://mirrors.ustc.edu.cn/qtproject/archive/qt/5.12/5.12.2/
选择windows类型下载,同样也是一个.exe安装。(qt不用担心32位还是64位,里面都包含有)
下载好后点击运行,如下图,点击next
接着需要登陆QT用户,如果可以选中skip可跳过,如果不能则需要注册qt用户来登录。注册邮箱和密码即可,不用付费。
接着都是默认下一步到安装地址,默认C盘(可以换其他的盘)点击下一步。
安装需要的组件,由于小星是用来做控制类设备的程控界面,只需要用到QT类和MinGW编译器就行,有其他需求的小伙伴可以选合适的。
许可协议选择阅读了,点下一步
快捷菜单可以默认,点击下一步
接着就点击安装,等待安装完成
关于如何用python来调用qt中的控件,可以看pycharm->配置
主推官址:https://www.jetbrains.com/pycharm/download/#section=windows, 有专业版(要激活)和社区版(免费),建议社区版点击download下载,也是.exe安装。(后面考虑32位还是64位)
根据本地电脑选择32位还是64位(可以两个都装),勾选如下然后next.(勾选情况如下,千万要把路径勾上不然要自己加环境变量)
接着这里默认,点击install等待安装成功即可。
等待它安装成功就行,这安装是相当快而简单的
在后续的开发中,以pycharm为主来创建项目,.py文件和.ui文件
打开pycharm
选择右下角的Configure,选择setting
打开project interpreter内容,点击 设置 后点击add,添加python环境
在interpreter的后面找到本地电脑安装上的python.exe路径,选中下面项(为所有用户添加包),点击OK即可。
成功配置好如下图所示。
别着急退出setting,还要配置.ui文件转换成.py的工具以及打开qt designer的工具。
之前装好了qt,现在有了pycharm后需要配置工具来打开QT的designer设计。
在setting中找到tool->external tool,点击“+”添加工具
在添加工具用来打开ui设计界面,配置如下
Program:本地安装的designer的路径(qt路径下或是pyqt5_tools路径下)
Working:$ProjectFileDir$
配置好后可以点ok
这里是下载了5.12.8版本,根据本地下载的qt版本为准
用designer设计后保存的文件为.ui文件,在pycharm里需要将.ui转换成.py文件,用来被其他文件调用到UI界面中的控件。在setting->tool->external tool中继续添加工具
Name:pyGUI(可随意命名)
Program:下载的python
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working:$FileDir$
Program:python的安装目录下的Scripts文件夹的pyrcc5.exe文件
Arguments:$FileName$ -o $FileNameWithoutExtension$_rc.py
Working directory : $FileDir$
都配置好后可以点ok,退出setting。
配置前面的环境后,进来pycharm,选择create new project
地址选择合适的继续create
等待环境搭好
在newtext右键->new->python file,新建main.py
编写简单的打印“good day”程序,可以点击右上角的绿色三角或是鼠标右键选择run ‘main’,即可运行程序。正常运行成功后如下。
新建一个.ui文件(设计UI界面),可以在点击tool->external tools->qtdesigner,等待弹出窗口。
弹出新建窗体,选择main windows(主选,有菜单可设置)
从widget box中拖入push button控件和list view控件和combo box控件
保存ui到刚刚创建的项目中。
返回到pycharm,可以看见.ui文件
右键.ui文件,点击external tools->pyGUI
# 导入需要的模块
from untitled import Ui_MainWindow
import sys
from PyQt5.QtCore import Qt,QCoreApplication
from PyQt5.QtWidgets import QApplication,QMainWindow
# 创建类
class mywin(QMainWindow, Ui_MainWindow):
def __init__(self):
super(mywin, self).__init__()
# 窗口初始化
self.setupUi(self)
if __name__ == "__main__":
# qt没有自动匹配电脑屏幕分辨率,所以需要设置
QCoreApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
# 用QApplication类创建了应用程序实例app。
app = QApplication(sys.argv)
# 带有窗口的类创建实例
win = mywin()
# 显示窗口
win.show()
# 点击窗口上的关闭按钮,将关闭窗口停止运行
sys.exit(app.exec_())
在pycharm中打开要生成.exe的项目,窗口下方找到Terminal(可在项目路径项执行python指令),输入pyinstaller -D -w main.py回车等待完成。(将会生成一个包含.exe和依赖包的目录)
注:pyinstaller的指令参数
-F 指定打包后只生成.exe格式文件
-D创建一个目录,包含.exe和依赖包文件
-c 使用控制台,无界面(默认)
-w 使用窗口,无控制台
-p 添加搜索路径,让其找到对应的库
-i 改变生成程序的icon图标