python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
PyQt5QtDesigner(Qt设计师)
PyQt5是对Qt所有类进行封装,Qt能开发的东西,PyQt都能开发.
Qt是强大的GUI库之一,用C++开发,并且跨平台.
PyQt双许可证,要么选择GPL(自由软件协议)将代码开源,要么选择商业许可交商业许可费.
PySide拥有LGPL2.1授权许可,可开发免费开源软件和私有商业软件.把PyQt5代码切换到PySide2代码是相当容易的,这也是为什么选择学习PyQt5的原因
准备工作
- 安装PyQt5:pipinstallpyqt5
- 安装Qt工具:pipinstallpyqt5-tools
- 配置Qt工具系统环境变量:Path=C:\Code\Python_Vir\python1\Lib\site-packages\pyqt5_tools
QtDesigner(Qt设计师)
强大的可视化GUI设计工具,帮助我们快速开发PyQt.
它生成UI界面为.ui文件,通过命令将.ui转为.py文件.
1.启动QtDesigner
执行命令designer,便会弹出以下界面
最常用的就是创建Widget(通用窗口)和MainWindow(主窗口),这里我们创建一个MainWindow.
下面简单介绍下主要功能:
文件保存为xxx.ui文件,可以用文本及编辑打开编辑,其数据是XML格式的.
2.将xxx.ui文件转为xxx.py文件
通过以下命令行执行,即可生成designer_demo.py文件
pyuic5-odesigner_demo.pydesigner_demo.ui
3.运行布局文件
导入并继承它
fromdesigner_demoimportUi_MainWindow classMyDesiger(QMainWindow,Ui_MainWindow):
编写以下代码,放在designer_demo.py同文件夹下,运行即可
importsys fromPyQt5.QtWidgetsimportQMainWindow,QApplication fromdesigner_demoimportUi_MainWindow classMyDesiger(QMainWindow,Ui_MainWindow): def__init__(self,parent=None): super(MyDesiger,self).__init__(parent) self.setupUi(self) if__name__=="__main__": app=QApplication(sys.argv) ui=MyDesiger() ui.show() sys.exit(app.exec_())
控件箱简介
Layouts布局(选中控件->Layout(右键)->选择布局)
- VerticalLayout:垂直布局
- HorizontalLayout:水平布局
- GridLayout:网格布局(划分为行和列)
- FormLayout:表单布局(左列标签,右列控件)
Containers容器
- GroupBox
- ScrollArea
- ToolBox
- TabWidge
- StackedWidget
- Frame:帧容器,可放入布局/控件等
- Widget:窗口容器
- MDIArea
- DockWidget
ItemWidgets条目控件
- ListWidget:列表条目
- TreeWidget:树形条目
- TableWidget:标签页条目
Spacers间隔(透明)
- HorizontalSpacer:水平间隔
- VerticalSpacer:垂直间隔
Buttons按钮
- PushButton:按钮
- ToolButton:工具箱按钮(…)
- RadioButton:单选框
- CheckBox:多选框
- CommandLinkButton:
- DialogButtonBox:Dialog按钮(ok|cancel)
InputWidgets输入控件
- ComboBox:下拉框
- FontComboBox:字体下拉框
- LineEdit:行文本编辑框
- TextEdit:文本编辑框
- PlainTextEdit:文本编辑框
- SpinBox:选择整数值
- DoubleSpinBox:选择浮点数值
- TimeEdit:时间选择框
- DataEdit:日期选择框
- Data/TimeEdit:日期时间选择框
- Dial:圆形滚动表盘
- HorizontalScrollBar:水平滚动条
- VerticalScrollBar:垂直滚动条
- HorizontalSlider:水平拖动条
- VerticalSlider:垂直拖动条
- KeySequenceEdit:按键编辑框
DisplayWidgets显示控件
- Label:标签(显示文字/图片等)
- TextBrowser:文本浏览(不可编辑)
- GraphicsView:绘画
- CalendarWidget:日历
- LCDNumber:LCD数字显示屏
- ProgressBar:进度条
- HorizontalLine:水平线
- VerticalLine:垂直线
- OpenGLWidget:OpenGl
控件属性简介
objectName:控件对象名
geometry:相对坐标(px)x,y,width,height
sizePolicy:控件大小策略
- Fixed:控件有sizeHint尺寸且尺寸不变
- Minimum:控件有sizeHint最小尺寸,尺寸可变大
- Maximum:控件有sizeHint最大尺寸,尺寸可变小
- Preferred:控件有sizeHint期望尺寸,有minisizeHint最小尺寸,尺寸可变大
- Expanding:控件有minisizeHint最小尺寸,希望更大尺寸
- MinimumExpanding:控件有sizeHint最小尺寸,希望更大磁村
- Ignored:无视sizeHint和minisizeHint,按默认设置
minimumSize:最小尺寸
maximumSize:最大尺寸(固定尺寸:minimumSize=maximumSize)
font:字体
cursor:光标
windowTitle:窗口标题
WindowsIcon:窗口图标
iconSize:图标大小
toolTip:提示泡提示信息
statusTip:状态栏提示信息
text:控件文本
shortcut:快捷键
horizontalSpacer:水平间距
信号(signal)和槽(slot)
PyQt5处理事件有个signalandslot机制,事件触发产生信号(signal),当信号发送(emit())时,连接的槽(slot)便会执行.
信号与槽的连接
sender.signal.connect(receiver.slot) #例子 btn.clicked.connect(self.buttonClicked)
快速连接伙伴(信号槽)
按F4选择EditSignal/Slot模式->鼠标按住控件1拖拽到控件2上松开->弹出对话框,选择两边连接事件->ok->按F3切换回EditWidgets模式
演示:
菜单栏
菜单栏通过双击TypeHere添加一级菜单(File),点开一级菜单双击TypeHere添加动作(NewFile),若点了后面的+,并添加动作(TextFile),则动作(NewFile)将变成子菜单.
并且我们可以在动作编辑器里修改菜单里的动作
加载资源文件
1.加载资源
2.使用资源
把Label控件拖到窗口上->属性设置pixmap
3.编译成可执行代码
除了需要把.ui文件转成.py文件外,还需要把.qrc文件转成.py文件
pyrcc5app.qrc-oapp.py
代码处理
importapp self.label.setPixmap(QtGui.QPixmap(":/pic/designer1.png"))
本文简单介绍了PyQt5QtDesigner(Qt设计师)的使用方法,更多关于PyQt5QtDesigner(Qt设计师)的使用方法请查看下面的相关链接
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。