PyQt 编程
2024-08-25 20:17:51 0 举报
AI智能生成
PyQt programming mindchart
作者其他创作
大纲/内容
开发环境搭建
QApplication
QLable
运行结果
运行第一个PyQt程序
格式化QLabel内容
1.1 Hello PyQt
QPushButton
Signal/Slot
运行结果,点击按钮,程序退出
创建一个按钮(PushButton),将按钮的点击动作(Click)与程序(QApplication)的退出操作(Quit)连接到一起
1.2 建立连接
QHBoxLayout
QSlider
QSpinBox
运行界面
创建一个微调框(SpinBox)和滑块(Slider),二者均可以完成年龄的输入,并且把两个控件之间的值改变信号(valueChanged)和设定动作(setValue)连接起来,可以实现二值值变化同步使用一个水平分布的容器来管理控件的布局,并把布局加载到最后要显示的window窗口中
setStretch可以指定排列时的占比使用布局管理时,控件位置和大小会跟着窗口尺寸变化而变化
QWidget.setLayout函数调用从底层上来说会把layout内的所有子控件自动重定义父对象,他们会自动成为安装了这个布局的窗口的子对象,所以当创建一个需要放进某个布局窗口的控件时,就没有必要显式指定父对象
QVBoxLayout
QGridLayout
布局管理器
1.3 窗口部件的布局
https://doc.qt.io/qtforpython-6/index.html
1.4 使用参考文档
第一章 Qt入门
创建QDialog子类
&:控件初始化时,设定字符串中添加‘&’前缀符号,可以开启快捷键功能,对应快捷键使用 Alt + Key来激活
tr(str) :将每一个用户可见的字符串使用tr(str) 包住,可以在后期将其翻译成其他语言
setBuddy :实现快捷键按下时,对应的Buddy控件获得焦点focus
setDefault :可以设置默认按钮,当按下Enter键时,默认按钮激活
更多的控件
代码参考Chapter02
使用多种layout布局组件可以更好的管理界面布局
多种布局方式组合使用
Signal需要声明为类(class)级别的变量
Signal无法直接调用
信号与槽的使用
2.1 创建子类化的QDialog
所有继承自QObject或它的子类的类,都可以使用Signal/Slot
当对象的状态发生变化时,对象可以发出信号 emit signal信号(Signal)发出时,Signal不需要知道是否有接收方
槽(Slot)用于接收信号,槽函数也是普通的成员函数,它不需要知道是否已经连接上某个或多个信号
slot和signal之间可以实现一对多的连接,即一个signal可以连接多个slot一个slot也可以连接多个signal
信号与槽的特性
实现按钮按下时,lineEdit内容清空
预定义的信号与槽
增加一个自定义函数,将button click信号与自定义函数连接
信号Signal连接到自定义的函数
自定义一个Button类(继承自QWidget)
在自定义类中添加Signal
#Python Types
#Qt Types
#多个不同类型参数
重载示例
# 参数重载
#创建signal时,也可以给signal预设一个名称
Signal类支持多种参数类型的构造方式
@QtCore.Slot()
Slot在继承自QObject的子类中需要添加装饰符
slot函数的签名需要与对应连接的signal参数类型一致
Slot创建
解除
Signal/Slot 可以通过disconnect解除连接
信号与槽应用举例
2.2 深入介绍信号与槽
1. 创建并初始化子窗口部件
2. 把子窗口部件放到布局中
3. 设置Tab键顺序
每次在Qt Designer中对UI文件的修改,都需要重新执行pyside-uic指令
pyside6-uic gotocelldialog.ui -o gotocelldialog.py
4. 使用pyside-uic导出
创建类实现多重继承(QDialog/ Ui_Object)
调用setupUi,初始化UI界面
运行显示
5. 创建与ui对应窗口类
更多正则表达式参考RegularExxpression主题
给LineEdit添加正则验证
继承自QDialog才会有accept/reject slot槽
给Button添加对应的Slot事件
6. 手动完成部件相关事件动作
使用QtDesigner完成布局
text属性设置时 ‘&’可以设定快捷键
default属性激活后,会响应Enter键动作
放置好部件之后,再进行layout布局,或者打破布局
setBuddy模式
Tab order设定模式
Qt Designer设计方式
2.3 快速设计对话框
layout -- setSizeConstraint 可以在动态隐藏/显示界面元素时,保持窗口尺寸不变换
利用sizeHint可以获取控件的尺寸,并且可以用于控件之间的尺寸控制
内置的slot函数可以在Designer设计时连接,代码会一起生成到.ui文件
ord函数实现Char字符到ASCII码之间的转换
chr(A) 可以强制转换值到char类型
QTabWidget
QListWidget
QStackedWidget
QTreeWidget
更多复杂的布局
2.4 改变对话框的形状
QToolButton
QCheckBox
QRadioButton
按钮
QGroupBox
可以在界面上绘制一些直线,也可以作为其他部件的基类
QFrame
单页容器
QToolBox
多页容器
列表形式
图标形式
QListView
QTreeView
QTableView
项视图
文本
图片
QLabel
QLCDNumber
QProgressBar
QTextBrowser
显示部件
QDoubleSpinBox
QComboBox
QDateEdit
QTimeEdit
QDateTimeEdit
Date/Time
QScrollBar
QLineEdit
QTextEdit
QDial
输入部件
QInputDialog
QProgressDialog
QMessageBox
QErrorMessage
反馈对话框
QColorDialog
QFontDialog
颜色/字体对话框
QFileDialog
文件对话框
QPageSetupDialog
QPrintDialog
打印对话框
2.5 内置的窗口部件类和对话框类
第二章 创建对话框
从MainWindow继承
通过setCentralWidget设定中心控件
QIcon
3.1 子类化QMainWindow
menuBar添加menu
MainWindow自带一个menuBar
Exit Action
手动定义菜单action
menu添加Action
分隔线
menu添加分隔线
3.2 创建菜单和工具栏
第三章 创建主窗口
第一部分 Qt基础
PyQt 编程
收藏
收藏
0 条评论
回复 删除
下一页