1. 分类
QWidgetQMainWindowQDialog
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.PartiallyCheckedstateChanged信号会在复选框状态发生改变的时候发出,之后可利用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.OkQMessageBox.YesQMessageBox.NoQMessageBox.CloseQMessageBox.CancelQMessage.OpenQMessage.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.MondayQt.TuesdayQt.WednesdayQt.ThursdayQt.FridayQt.SaturdayQt.Sunday
setSelectedDate(QDate(2020, 11, 11))设置日历初始化时所显示的日期,默认是当天日期setGridVisible(True)设置是否在日历上显示网格True:显示网格False:不显示网格
selectedDate()获取到当前所选日期,接着通过toString("yyyy.MM.dd")方法获取星期的缩写
