1. 分类
QWidget
QMainWindow
QDialog
2. 组件
1. QLabel
文本块
2. QLineEdit
单行文本输入框
3. QTextEdit
文本编辑框
setText()
用来设置文本toPlainText()
用来获取文本textChanged
文本发生改变的时候,会发出信号,之后可利用connect(<func>)
调用槽函数toPlainText()
获取文本
4. QTextBrowser
文本浏览框
- 会执行
html
代码 setText()
用来设置文本toPlainText()
用来获取文本
5. QPushButton
一般按钮
1. 事件
clicked
:点击pressed
:点击左键触发released
:释放左键触发toggled
:按钮标记状态发生变化的信号
1 | self.my_button.clicked.connect(self.print_hello) |
2. 状态
setCheckable(True)
:设置可标记isChecked()
:返回值判断按钮是否为标记状态,True为标记setIcon(QIcon('button.png'))
:设置图标
6. QToolButton
工具操作相关的按钮
- 通常和
QToolBar
搭配使用 - 设置文本需要通过
setText()
方法
7. QRadioButton
单选按钮
setChecked(True)
设为选中状态
8. QCheckBox
复选框
- 复选框一共有三种状态:全选中、半选中和无选中,存在于父选项和子选项间子选项
setCheckState()
:参数可以是选中状态Qt.Checked
,无选中状态Qt.Unchecked
和半选中状态Qt.PartiallyChecked
stateChanged
信号会在复选框状态发生改变的时候发出,之后可利用connect(lambda:<func>)
调用槽函数checkState()
方法可以获取当前复选框的状态,返回值为int类型,0为无选中状态,1为半选中状态,2位选中状态
3. 布局
1. 分类
QVBoxLayout
垂直布局QHBoxLayout
水平布局QFormLayout
表单布局QGridLayout
网格布局
2. 注意
addWidget()
方法用来添加控件,addLayout()
方法用来添加布局- 前三种添加控件语法:
addWidget(widget)
- 网格布局语法添加控件语法:
addWidget(widget, row, column, rowSpan, columnSpan)
addStretch(1)
添加大小为1的占位符,可以通过两侧添加相同的占位符来居中控件setAlignment(Qt.AlignCenter)
可使用控件直接居中setWindowTitle
方法可以设置窗口标题
4. 弹框 QMessageBox
1. 分类
information
信息框question
问答框warning
警告框critical
错误框about
关于框
2. 语法
语法:QMessageBox.information(self, '弹框名', '内容', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel)
可选的按钮:
QMessageBox.Ok
QMessageBox.Yes
QMessageBox.No
QMessageBox.Close
QMessageBox.Cancel
QMessage.Open
QMessage.Save
3. 注意
- 可以不指定按钮
- 获取弹框返回值可以做到信息框交互
1 | choice = QMessageBox.information(self, '弹框名', '内容', QMessageBox.Yes | QMessageBox.No | QMessageBox.Cancel) |
5. 控件
1. 进度条 QSlider
1. 语法
QSlider(Qt.Horizontal, self)
Qt.Horizontal
水平滑动条Qt.Vertical
垂直滑动条
2. 方法
setRange(0, 100)
设置滑动条范围setMinimum()
设置滑动条最小值setMaximum()
设置滑动条最大值valueChanged
信号会在数值发生改变时发出,之后可利用connect(lambda:<func>)
调用槽函数value()
获取当前滑动条数值
2. 仪表盘 QDial
1. 语法
QDial(self)
2. 方法
setFixedSize(100, 100)
设置仪表盘大小,如果不设置该方法,在改变表盘数值时,表盘的大小会发生改变setRange(0, 100)
设置表盘数值范围setMinimum()
设置表盘最小值setMaximum()
设置表盘最大值setNotchesVisible(True)
可以显示刻度valueChanged
信号会在数值发生改变时发出,之后可利用connect(lambda:<func>)
调用槽函数value()
获取当前表盘数值
3. 定时器 QTimer
1. 语法
QTimer(self)
2. 方法
timeout
信号会在随计数器数值改变发出,之后可利用connect(<func>)
调用槽函数setSingleShot(True)
只会在触发timeout
信号后调用一次绑定的槽函数start(100)
开始定时器,每过100ms,定时器会触发timeout
信号stop()
停止定时器isActive()
判断定时器是否处于激活状态
4. 进度条 QProgressBar
1. 语法
QProgressBar(self)
默认是水平的
2. 方法
setOrientation(Qt.Horizontal)
设置水平还是垂直setRange(0, 100)
设置进度条范围setMinimum()
设置进度条最小值setMaximum()
设置进度条最大值setValue()
设置进度条的值progressbar.reset()
进度条重置
5. 液晶数字显示屏 QLCDNumber
1. 语法
QLCDNumber(self)
2. 方法
setDigitCount(10)
设置一共可以显示多少位数setSegmentStyle(QLCDNumber.Outline)
设置显示屏数字样式QLCDNumber.Outline
:内容浮现,颜色与显示屏背景颜色相同QLCDNumber.Filled
:内容浮现,颜色与窗口标题颜色相同QLCDNumber.Flat
:内容扁平化,颜色与窗口标题颜色相同
setSmallDecimalPoint(True)
设置小数点的显示方式True
:小数点会在两个数字之间显示出来,不会单独占一个位置False
:默认
setMode(QLCDNumber.Hex)
数字显示方式QLCDNumber.Hex
数字以十六进制方式显示QLCDNumber.Dec
数字以十进制方式显示QLCDNumber.Oct
数字以八进制方式显示QLCDNumber.Bin
数字以二进制方式显示
display(1234567890)
用于显示数字
6. 不可编辑日历控件 QCalendarWidget
1. 语法
QCalendarWidget(self)
2. 方法
setDateRange(QDate(1949, 10, 1), QDate(6666, 6, 6))
设置日历范围setMaximumDate(QDate(1949, 10, 1))
设置日历最大日期setMinimumDate(QDate(6666, 6, 6))
设置日历最小日期self.calendar.setFirstDayOfWeek(Qt.Monday)
设置一个星期的第一天,默认第一天为星期天Qt.Monday
Qt.Tuesday
Qt.Wednesday
Qt.Thursday
Qt.Friday
Qt.Saturday
Qt.Sunday
setSelectedDate(QDate(2020, 11, 11))
设置日历初始化时所显示的日期,默认是当天日期setGridVisible(True)
设置是否在日历上显示网格True
:显示网格False
:不显示网格
selectedDate()
获取到当前所选日期,接着通过toString("yyyy.MM.dd")
方法获取星期的缩写