版本变更信息:
版本号 |
日期 |
填写人 |
变更主要原因描述 |
备注 |
v1.0 |
2022.6.9 |
罗浩铭 |
新增 |
· 什么是pyqt?
Qt 是使用 C++ 语言编写的跨平台 GUI 库,支持 Windows、Mac OS X 和 Linux。
PyQt 是一个用于创建 GUI(图形界面) 应用程序的跨平台工具包,它将 Python 与 Qt 库融为一体。也就是说, PyQt 允许使用 Python 语言调用 Qt 库中的 API。这样做的最大好处就是在保留了 Qt 高运行效率的同时,大大提高了开发效率。因为使用 Python 语言开发程序要比使用 C++ 语言开发程序快得多。PyQt 对 Qt 做了完整的封装,几乎可以用 PyQt 做 Qt 能做的任何事情。
· pyqt有哪些优势?
- 跨平台效果好,完美支持mac、windows、unix等多种系统;
- 学习简单,面向对象的特性体现的比其他框架明显;
- 功能强大,基本能实现QT能实现的所有功能;
- 文档丰富
文档:PyQt5 Reference Guide — PyQt v5.15 Reference Guide
免费的教学视频:http://www.bl186.net/
- 拥有QT Designer和QSS支持,界面效果更好
- Pyqt是双重许可,开发者可以在gpl和商业许可之间进行选择
- 。。。
安装python:
下载链接:https://www.python.org/getit/
安装python编译器pycharm:
http://www.jetbrains.com/pycharm/download/index.html#section=windows
安装PyQt5模块:
win+r 输入cmd
pip install PyQt5 -i Simple Index
安装PyQt5的工具包:
pip install PyQt5-tools -i https://pypi.douban.com/simple
安装可能出现的问题:
安装Pyqt5-tools失败
解决办法:
pip install PyQt5-tools -i https://pypi.douban.com/simple --user
QMainWindow 类经常被继承,可以包含菜单栏,工具栏,状态栏,标题栏等,是GUI程序的主窗口。如果我们需要创建主窗口程序,就使用该类。
方法 |
描述 |
addToolBar() |
添加工具栏 |
centralWidget() |
返回窗口中心的控件,未设置返回NULL |
menuBar() |
返回主窗口的菜单栏 |
setCentralWidget() |
设置窗口中心的控件 |
setStatusBar() |
设置状态栏 |
statusBar() |
获取状态栏对象 |
addToolBar():
menuBar():
statusBar():
QDialog是对话框窗口的基类,对话框一般用来执行短期任务,或者与用户进行互动,它可以是模态的也可以是非模态的。QDialog没有菜单栏,工具栏,状态栏等。如果我们需要的是对话框,就选择该类。
QDialog 类的子类主要有 QMessageBox、QFileDialog、QFontDialog、QInputDialog、QColorDialog、QErrorMessage、QProgressDialog、QTabDialog、QWizard 等
该类作为QMainWindow和QWidget的父类,并未细化到主窗口或者对话框,作为通用窗口类,如果不确定具体使用哪种窗口类,就可以使用该类。
QWidget 类是所有用户界面对象的基类,窗口部件是用户界面的一个基本单元,它从窗口系统接收鼠标、键盘和其他消息,并在屏幕上绘制自己。一个窗口部件可以被它的父窗口或其他窗口挡住一部分。
QWidget 类直接提供的成员函数:x( )、y( ) 用于获取窗口左上角的坐标,width( )、height( ) 用于获取窗口的宽度和高度。
QWidget 类中的 frameGeometry( ) 方法提供的成员函数:x( )、y( ) 用于获取客户区左上角的坐标,width()、height( ) 用于获取客户区的宽度和高度。
QWidget 类中的 frameGeometry( ) 方法提供的成员函数:x( )、y( ) 用于获取窗口左上角的坐标,width( )、height( ) 用于获取包含客户区、标题栏和边框在内的整个窗口的宽度和高度。
QPushButton 普通按钮
QToolButton 工具按钮:通常在工具栏使用
QRadioButton 单选框
QCheckBox 复选框
QCommanLinkButton Vista风格的命令链接按钮
QDialogButtonBox 对话框按钮组:确定、取消
QLabel 标签
QTextBrowser 文本区域
QGraphicsView 图像显示
QCalendarWidget 日历组件
QProgressBar 进度条
QLCDNumber 液晶数字显示
QWebView Web浏览器视图
QDeclarativeView 显示Qt声明的用户接口
QComboBox 下拉选框
QFontComboBox 字体选择
QLineEdit 单行文本框
QTextEdit 多行文本框(富文本)
QPlainTextEdit 多行文本框(纯文本)
QSpinBox 整数范围调节器
QDoubleSpinBox 实型范围调节器
QDial 环形范围调节器
QSlider 滑动调节器
QTimeEdit 时间输入框
QDateEdit 日期输入框
QDateTimeEdit 时间日期输入框
QFrame 帧窗口
QWidget 界面部件,所有界面对象类的基类
QToolBox 工具栏容器
QTabWidget 多标签容器
QStackedWidget 层次容器,一次只有一个可见
QScollArea 滚动区域
QGroupBox 对象组容器
QMdiArea 多文档容器
QDockWidget 悬浮容器
QDail, QSpinBox的使用
· Label标签控件
· lb.setAlignment 设置对齐方式
· lb.setWordWrap(True) 设置文本换行显示
· lb.setOpenExternlLinks(True)设置允许访问超链接
· 为标签设置图片:首先要导入QPixmap,lb.setPixmap(QPixmap('图片路径'))
· LineEdit 单行文本框
· setPlaceholderText() 设置文本框浮现文字
· setManLength() 设置允许文本框内输入字符的最大长度
· setAlignment() 设置文本对齐方式
· setReadOnly() 设置文本框只读
· setEchoMode 设置文本框显示字符的模式 le.NoEcho 不显示任何输入的字符 le.password 显示与平台相关的密码掩码字符,而不是实际输入的字符,le.PasswordEchoOnEdit 在编辑时显示字符,失去焦点后显示密码掩码字符
· setValidator
· QIntValidatoe :限制输入整数
· QDoubleValidator: 限制输入小数
· QEegExpValidator: 检查输入是否符合设置的正则表达式
· clear() 清除文本框内容
· TextEdit 多行文本框
· setPlainText() 设置文本内容
· toPlainText() 获取文本内容
· setTextColor(QtGui.QColor)设置文本颜色
· setTextBackgroundColor()设置文本的背景颜色
· setWordWrapMode()设置自动换行
· SpinBox 整数数字选择控件
· setValue()设置控件的当前值
· setMaximum()设置最大者
· setMinimum()设置最小值
· setRange()设置取值范围
· setSingleStep() 单机上下箭头的步长值
· DoubleSpinBox 小数数字选择控件
· LCDNumber 液晶数字显示控件
· setIcon() 设置按钮上的图标,可以将参数设置为QtGui.QIcon('图标路径')
· setIconSize() 参数可以设置为QtCore.QSize(width,height)
· setEnabled()
· setShortcut()
· comboBox 下拉组合框
· addItem() 添加一个下拉列表框
· addItems() 从列表中添加下拉选项
· currentText()获取选中项的文本
· currentIndex()获取选中项的索引
· itemText(index) 获取索引为index的项的文本
· setItemText(index,text)设置索引为index的项的文本
· count() 获取所有选项的数量
· clear() 删除所有选项
· 常用信号:actived和currentIndexChanged actived信号在选中一个下拉选项时发射,currentIndexChanged信号在下拉选项的索引发生改变时发射
· QListWidget
· addItem() 向列表中添加项
· addItems() 一次向列表中添加多项
· insertItem() 在指定索引处插入项
· setCurrentItem() 设置当前选择项
· item.setToolTip()设置提示内容
· item.isSelected()判断项是否选中
· setWordWrap()设置是否自动换行
· setViewMode()设置显示模式
· item.text()获取项的文本
· clear()删除所有列表项
· GroupBox
· setTitle()设置分组标题
· ToolBox
· addItem() 添加选项卡
· setCurrentIndex() 设置当前选中的选项卡索引
· setItemIcon() 设置选项卡的图标
· setItemText()设置选项卡的标题文本
· setItemEnabled() 设置选项卡是否可用
· insertItem() 插入新选项卡
· removeItem() 移除选项卡
· itemText() 获取选项卡的文本
· currentIndex() 获取当前选项卡的索引
· CalendarWidget
· setMinimumDate() 设置最小日期
· setMaximumDate 设置最大日期
· setFirstDayOfWeek 设置一周的第一天 Qt.Monday
· setGridVisible 设置是否显示网格线
· setSelectionMode 设置选择模式 1.QCalendarWidget.NoSelection:不能选中日期 2.QCalendarWidget.SingleSelection
· setHorizontallHeaderFormat 设置水平头部格式
· QCalendarWidget.NoHorizontalHeader 不显示水平头部
· QCalendarWidget.SingleLetterDayNames:"周"
· QCalendarWidget.ShortDayNames:简短天的名称,如:周一
· QCalendarWidget.LongDayNames: 完整天的名称 如“星期一”
· setNavigationBarVisible 设置是否显示导航栏
· setDateEditEnabled 设置是否可以编辑日期
· setDateEditAcceptDelay() 设置编辑日期的最长间隔
· selectedDate()获取选择的日期,返回值而QDate类型
· 常用的信号时selectionChanged,该信号的选择的日期发生改变时发射
· QDateTimeEdit
· setTime设置时间
· setMaximumTime() 设置最大时间
· setMinimumTime()设置最小时间
· setTimeSpec()获取显示的时间标准
· LocalTime 本地时间
· UTC 世界标准时间
· setDate()设置日期
· setMaximumDate()设置最大日期
· setMinimumDate()设置最小日期
· setDisplayFormat() 设置日期时间显示样式
· 日期样式:yyyy/MM/dd
· 时间样式:HH:mm:ss
· date()获取显示的日期,返回QDate类型
· time()获取显示的时间,返回值为QTime类型
· dateTime()获取显示的日期时间,返回值为QDateTime类型
· 常用信号
· timeChanged 时间发生改变时发射
· dateChanged 日期发生改变时发射
· dateTimeChanged 日期或者时间发生改变时发射
组件不放在布局管理器种,而通过函数setGeometry(x, y, width, height)来设定组件相对其父窗口的位置。其中x, y是组件左上角的坐标,width, height是组件的宽和高。在绝对位置布局中,resize()函数可以调整组件尺寸,setGeometry( ) 函数可以调整组件位置和尺寸,甚至重载 sizeHint( ) 函数也可以设定组件尺寸。采用绝对位置布局方式,组件的位置和尺寸固定,并不会随着父窗口位置和尺寸的改变而发生改变。
例: