QToolButton是一个工具按钮控件,它通常用于工具栏和菜单中。它提供了一些常用的操作,如打开文件、保存文件、复制粘贴等,同时还可以自定义按钮的图标和快捷键。
下面是一些常用的QToolButton的API方法和信号:
API方法
- setToolButtonStyle(style: Qt.ToolButtonStyle):设置工具按钮的样式
- setDefaultAction(action: QAction):设置默认动作
- setAutoRaise(enabled: bool):设置是否自动升起
- setPopupMode(mode: QToolButton.ToolButtonPopupMode):设置弹出模式
- setMenu(menu: QMenu):设置菜单
- setToolButtonStyle(style: Qt.ToolButtonStyle):设置工具按钮的样式
- setArrowType(type: Qt.ArrowType):设置箭头类型
- setIcon(icon: QIcon):设置按钮的图标
- setText(text: str):设置按钮的文本
- setShortcut(shortcut: Union[QKeySequence, str]):设置快捷键
信号
- clicked(bool checked = False):按钮被点击时触发
- pressed():按钮被按下时触发
- released():按钮被释放时触发
- toggled(bool checked):按钮的状态被改变时触发
下面是一个简单的例子,演示如何使用QToolButton:
import sys
from PyQt5.QtWidgets import QApplication, QWidget, QToolBar, QToolButton, QAction
class MyWidget(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setWindowTitle('QToolButton Demo')
self.setGeometry(100, 100, 300, 200)
toolbar = QToolBar(self)
# 创建一个打开文件的QAction
open_action = QAction('Open', self)
open_action.setIcon(self.style().standardIcon(1))
open_action.triggered.connect(self.on_open)
# 创建一个保存文件的QAction
save_action = QAction('Save', self)
save_action.setIcon(self.style().standardIcon(2))
save_action.triggered.connect(self.on_save)
# 创建一个复制的QAction
copy_action = QAction('Copy', self)
copy_action.setIcon(self.style().standardIcon(3))
copy_action.triggered.connect(self.on_copy)
# 创建一个剪切的QAction
cut_action = QAction('Cut', self)
cut_action.setIcon(self.style().standardIcon(4))
cut_action.triggered.connect(self.on_cut)
# 创建一个工具按钮,设置打开文件的动作和图标
open_button = QToolButton(self)
open_button.setDefaultAction(open_action)
open_button.setAutoRaise(True)
# 创建一个工具按钮,设置保存文件的动作和图标
save_button = QToolButton(self)
save_button.setDefaultAction(save_action)
save_button.setAutoRaise(True)
# 创建一个工具按钮,设置复制的动作和图标
copy_button = QToolButton(self)
copy_button.setDefaultAction(copy_action)
copy_button.setAutoRaise(True)
# 创建一个工具按钮,设置剪切
cut_button = QToolButton(self)
cut_button.setDefaultAction(cut_action)
cut_button.setAutoRaise(True)
# 添加工具按钮到工具栏
toolbar.addWidget(open_button)
toolbar.addWidget(save_button)
toolbar.addSeparator()
toolbar.addWidget(copy_button)
toolbar.addWidget(cut_button)
def on_open(self):
print('Open clicked')
def on_save(self):
print('Save clicked')
def on_copy(self):
print('Copy clicked')
def on_cut(self):
print('Cut clicked')
if __name__ == ' __main__':
app = QApplication(sys.argv)
w = MyWidget()
w.show()
sys.exit(app.exec_())
运行该程序,会创建一个工具栏和四个工具按钮,分别对应打开文件、保存文件、复制和剪切操作。当用户点击某个工具按钮时,相应的操作会被执行。