一、按钮
(一)普通按钮QPushButton
1.创建按钮控件
QPushButton():创建一个无父控件的按钮控件
QPushButton(parent):创建控件的同时, 设置父控件
QPushButton(text, parent):创建控件的同时, 设置提示文本和父控件
QPushButton(icon, text, parent):创建控件的同时, 设置图标, 提示文本和父控件
2.设置快捷键
setShortCut(text)
3.设置菜单
setMenu(QMenu):设置菜单
menu():获取菜单
showMenu():展示菜单
4.边框是否保持扁平
setFlat(bool):设置了此属性,则除非按下按钮,否则大多数样式都不会绘制按钮背景
isFlat():获取当前按钮边框是否扁平
5.设置按钮是否被选中
setCheckable()
设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态
6.设置按钮是否可以使用
setEnabled()
设置按钮是否可以使用,当设置为False时,按钮变成不可用状态,点击它不会发射信号
7.返回按钮的状态
isChecked()
返回按钮的状态,返回值为True或者False
8.设置按钮的默认状态
setDefault()
设置按钮的默认状态
9.设置按钮名称
setText()
设置按钮的显示文本
10.返回按钮名称
text()
返回按钮的显示文本
11.在按钮状态之间进行切换
toggle()
在按钮状态之间进行切换
(二)单选按钮QRadioButton
1.简介
在 PyQt5 这个强大的 Python GUI 框架中,QRadioButton 是一个常见的控件,用于表示一个可以被用户选择或取消选择的单选按钮。与 QCheckBox 不同,QRadioButton 允许用户从一组选项中选择一个,而不是选择多个。这种控件在创建用户友好的界面时非常有用,特别是在需要用户从一系列选项中进行选择时。
PyQt5 的 QRadioButton
控件继承自 QAbstractButton
类,因此它拥有许多与按钮相关的通用方法和属性。下面我们将通过一些示例代码来介绍它的基本用法。
2.属性和方法
(1)设置按钮是否被选中
可以改变单选钮的选中状态,如果设置为True,则表示单选钮将保持已点击或释放状态。
setCheckable()
(2)返回单选按钮的状态。设置返回值True或False
isChecked()
(3)设置单选按钮的显示文本
setText()
(4)返回单选钮的显示文本
text()
(5)设置单选按钮的工具提示
setToolTip(str)
(6)切换单选按钮的选中状态
toggle()
3.方法
clicked
(三)复选框QCheckBox
1.QCheckBox复选框的三种状态:
Qt.Checked: 值为2,表示组件被选中
Qt.PartiallyChecked: 值为1,表示组件被半选中
Qt.Unchecked: 值为0,表示组件没有被选中
2.属性和方法
(1)设置复选框的显示文本;
setText()
(2)设置复选框是否可用,设置为False时,复选框不可用;
setEnabled()
(3)返回复选框的显示文本;
text()
(4)返回复选框的选中状态;
isChecked()
(5)设置复选框的状态,设置为True表示选中,False表示取消选中的复选框;
setChecked()
(6)设置复选框为一个三态复选框
setTriState()
(7)三态复选框的状态设置,具体设置见三态复选框状态表。
setCheckState()
3.信号
stateChanged 选中或清除选中时, 发射此信号
(四)工具按钮QToolButton
1.简介
2.方法和属性
(1)创建工具按钮
tool_button = QToolButton(window)
(2)设置文本
setText()
(3)设置图标
setIcon()
(4)设置图标大小
tool_button.setIconSize(QtCore.QSize(32, 32))
(5)设置工具提示
tool_button.setToolTip("这是一个工具按钮")
(6)设置按钮样式
# 只显示图标
tool_button.setToolButtonStyle(Qt.ToolButtonIconOnly)
# 只显示文本
tool_button.setToolButtonStyle(Qt.ToolButtonTextOnly)
# 文本显示在图标旁边
tool_button.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
# 文本显示在图标下方
tool_button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
# 遵循系统风格
tool_button.setToolButtonStyle(Qt.ToolButtonFollowStyle)
(7)设置菜单
setMenu()
(8)设置弹出菜单显示模式
# 设置弹出菜单的显示模式
# Qt.DelayedPopup:当按钮被点击并释放后显示菜单
# Qt.InstantPopup:当按钮被点击时立即显示菜单
# Qt.MenuButtonPopup:按钮旁边始终显示一个小的箭头,点击箭头时显示菜单
tool_button.setPopupMode(Qt.DelayedPopup)
(9)可检查状态
setCheckable()
示例代码:
tool_button.setCheckable(True)
# 检查按钮是否被选中
if tool_button.isChecked():
print("按钮被选中")
else:
print("按钮未被选中")
# 也可以通过点击信号来切换状态
tool_button.clicked.connect(lambda: print(f"按钮状态:{'选中' if tool_button.isChecked() else '未选中'}"))
(10)设置显示的箭头类型
# 无箭头
tool_button.setArrowType(Qt.NoArrow)
# 向上箭头
tool_button.setArrowType(Qt.UpArrow)
# 向下箭头
tool_button.setArrowType(Qt.DownArrow)
# 向左箭头
tool_button.setArrowType(Qt.LeftArrow)
# 向右箭头
tool_button.setArrowType(Qt.RightArrow)
(11)自定义大小与布局
QToolButton
的大小默认是自动调整的,但你也可以通过setFixedSize()
或setGeometry()
方法来手动设置其大小。此外,还可以结合布局管理器(如QHBoxLayout
、QVBoxLayout
等)来更好地控制QToolButton
的布局。
示例代码:
# 设置固定大小
tool_button.setFixedSize(100, 50)
# 或者在布局中设置
# 假设你有一个布局实例layout
# layout.addWidget(tool_button)
(12)设置自动提升效果
tool_button.setAutoRaise(True)
QToolButton
支持自动浮起效果,即当鼠标悬停在按钮上时,按钮会呈现3D效果。通过setAutoRaise()
方法可以设置是否启用此效果。
3. 信号
学习资料来源:【python】PyQt5中QToolButton的详细用法教学与应用实战_pyqt qtoolbutton-CSDN博客