PyQt5环境配置
首先,默认电脑已经安装好python3.6和pycharm。
安装模块:
进行PyQt5开发之前需要安装pywin32、PyQt5、PyQt5-tools模块,可以使用命令行
pip install PyQt5、pip install PyQt5-tools和pip install pywin32安装,也可以直接在pycharm软件中File—Settings—Project:*—Project Interpreter—‘+’进行安装。安装完后使用如下代码进行测试,如有报错考虑升级相应的模块。
import sys
from PyQt5 import QtWidgets
app = QtWidgets.QApplication(sys.argv)
widget = QtWidgets.QWidget() #声明窗口
widget.resize(500,500) #设置窗口大小
widget.setWindowTitle("显示一个窗口")
widget.show() #显示窗口
sys.exit(app.exec_()) #点击x关闭窗口
配置PyQt5到Pycharm
使用Pyqt5开发UI,有两种方式,一种是直接输入python代码创建UI,如label、text、button等,并需要通过代码来调整位置、大小等信息;另一种是通过Pyqt5-tools模块中的QtDesigner来设计UI,也就是通过Qt中拖拽相应的UI模块来设计UI界面,然后再通过将保存好的.ui文件导入工程转换为.py文件供python程序调用,显然第二种方式更加简单。
以下是将QtDesigner“放入”pycharm中和将“.ui”转为“.py”的软件配置。
以上图片中的:
Name:QtDesigner 软件名,自定义即可
Program:安装pyqt5_tools模块的路径下的designer C:\Users\ming\AppData\Local\Programs\Python\Python36\Lib\site- packages\pyqt5_tools\designer.exe
Working directory:$ProjectFileDir$
Name:PyUIC
Program:安装python的路径
C:\Users\ming\AppData\Local\Programs\Python\Python36\python.exe
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
Working directory:$ProjectFileDir$
以上便是环境的配置。检验配置是否完成,可以查看Tools-External Tools-*是否多出了刚才配置的两个工具。单击QtDesigner可以直接打开该软件,而PyUIC则需要针对.ui文件才能使用。
UI界面设计
对UI界面的设计,不讨论对UI的美化,只介绍使用。根据前面所言的两种PyQt5的ui设计方式,这里只讨论第二种,实际上第二种也包括了第一种。通过Tools-External Tools-QtDesigner打开软件,界面如下:
选择Main Window新建ui文件,并拖拽相应的模块,如图:(具体的使用和Qt软件类似)。新建完成后,保存到当前python工程目录下,命名为just.ui。
注意:这里新建的ui文件也可用Qt软件打开,即通过Qt直接设计后只将qt工程文件中的.ui文件放到python中使用;设计好的.ui文件还可以通过Designer再次打开并修改。
生成的just.ui文件无法在python中直接调用需要通过PyUIC转化为.py文件。右键单击just.ui文件,操作如图,即可生成just.py文件,该文件仅仅是ui文件,包括各个ui模块的位置、大小等信息。这种方式可以将逻辑层和UI层分成两块进行程序开发。
just.py文件部分内容如下:
程序运行
界面设计完成后,just.py是无法运行的。
方法1 最简单的方式是,直接在生成的 just.py文件末尾加上如下程序段即可。
if __name__=="__main__":
import sys
app=QtWidgets.QApplication(sys.argv)
widget=QtWidgets.QWidget()
ui=Ui_Dialog() #Ui_Dialog为通过ui生成的just.py文件中的类名称
ui.setupUi(widget)
widget.show() #显示窗口
sys.exit(app.exec_())
方法2 再新建一个python文件demo.py代码如下,再调用生成的just.py文件。
import sys
import just
from PyQt5.QtWidgets import QApplication,QMainWindow,QPushButton
if __name__ =='__main__':
app=QApplication(sys.argv) #声明应用程序
MainWindow=QMainWindow() #声明窗口
ui=just.Ui_Dialog() #声明UI对话框,即对应的UI的python文件
ui.setupUi(MainWindow) #将UI对话框对应声明的窗口
MainWindow.show()
sys.exit(app.exec_()) #当点击窗口的x时,退出程序
方法3 也可以新建一个类使用继承的方式。
import sys
from just import Ui_Dialog
from PyQt5 import QtWidgets
class justwindow(QtWidgets.QWidget, Ui_Dialog):
def __init__(self):
super(justwindow, self).__init__() #初始化父类
self.setupUi(self)
if __name__=="__main__":
app=QtWidgets.QApplication(sys.argv)
justshow=justwindow()
justshow.show()
sys.exit(app.exec_())
事件触发
和设计UI界面一样,也可以采用designer进行简单的交互设计,如,按下按钮的操作显示某个模块或者添加文字等。
具体可参考如下两个链接(比较简单易懂):
使用pycharm+pyqt5 控件事件触发:link
包括使用pycharm+pyqt5 触发自定义方法:link