PyQt5 之QToolButton工具按钮

Posted yang-2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5 之QToolButton工具按钮相关的知识,希望对你有一定的参考价值。

具按钮,一般在工具栏中显示,工具栏中的工具按钮一般只显示图标,供用户快捷的使用一些功能,它继承自QAbstractButton

一、常用API

1、setToolButtonStyle(Qt.ToolButtonTextBesideIcon):工具按钮样式

Qt.ToolButtonIconOnly 只显示图标(默认风格)
Qt.ToolButtonTextOnly 只显示文本
Qt.ToolButtonTextBesideIcon 文本显示在图标旁
Qt.ToolButtonTextUnderIcon 文本显示在图标下方
Qt.ToolButtonFollowStyle 遵循风格

2、setArrowType(Qt.ArrowType)

Qt.NoArrow 无箭头
Qt.UpArrow 向上箭头
Qt.DownArrow 向下箭头
Qt.LeftArrow 向左箭头
Qt.RightArrow 向右箭头

3、setAutoRaise(bool)

自动提示是一个按钮的效果,指的是按键扁平化,但是当光标接触按键时候

4、setPopupMode(QToolButton.InstantPopup)

QToolButton.DelayedPopup 延时打开

QToolButton.MenuButtonPopup  添加一个箭头

QToolButton.InstantPopup  立刻打开,点击不发送点击信号

二、案例

from PyQt5.Qt import *
import sys

class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.setWindowTitle(QCommandLinkButton-使用)
        self.resize(500, 400)
        self.setup_ui()
    
    def setup_ui(self):
        tb = QToolButton(self)
        tb.setText(工具按钮)
        tb.setIcon(QIcon(xxx.png))
        # tb.setIconSize(QSize(60, 60))
        #tb.setToolTip(‘这是一个工具按钮‘)
        # Qt.ToolButtonIconOnly
        #   仅显示图标
        # Qt.ToolButtonTextOnly
        #   仅显示文字
        # Qt.ToolButtonTextBesideIcon
        #   文本显示在图标旁边
        # Qt.ToolButtonTextUnderIcon
        #   文本显示在图标下方
        # Qt.ToolButtonFollowStyle
        #   遵循风格
        tb.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
        # 自动提示是一个按钮的效果,指的是按键扁平化,但是当光标接触按键时候
        tb.setAutoRaise(True)
        
        menu = QMenu(tb)
        
        sub_menu = QMenu(menu)
        sub_menu.setTitle("子菜单")
        sub_menu.setIcon(QIcon("xxx.png"))
        
        action1 = QAction(QIcon("xxx.png"), "行为1", menu)
        action1.setData([1, 2, 3])
        action2 = QAction("行为2", menu)
        action2.setData({"name": "sz"})


        menu.addMenu(sub_menu)
        menu.addSeparator()
        menu.addAction(action1)
        menu.addAction(action2)
        
        tb.setMenu(menu)
        # 菜单弹出模式
        tb.setPopupMode(QToolButton.InstantPopup)
        tb.clicked.connect(lambda :print("工具按钮被点击了"))
        def do_action(action):
            print("点击了行为", action.data())
        tb.triggered.connect(do_action)
        # Qt.NoArrow
        #   无箭头
        # Qt.UpArrow
        #   向上箭头
        # Qt.DownArrow
        #   向下箭头
        # Qt.LeftArrow
        #   向左箭头
        # Qt.RightArrow
        #   向右箭头
        #设置箭头图标
        tb.setArrowType(Qt.RightArrow)
        
        
if __name__ == __main__:
    app = QApplication(sys.argv)
    window = Window()
    window.show()
    sys.exit(app.exec_())

技术图片

 

以上是关于PyQt5 之QToolButton工具按钮的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 控件学习(一个一个学习之QToolButton)

《PyQT5软件开发 - 控件篇》第2章 按钮-2(QRadioButton, QCheckBox, QToolButton)

pyqt5学习之QToolButton

Pyqt5 QToolButton 使用 autoRaise 方法设置样式表

带有文本的 QToolButton:覆盖最小高度以模仿常规按钮高度

QToolButton 工具按钮