zoukankan      html  css  js  c++  java
  • 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_())

  • 相关阅读:
    [LeetCode] Rotate Image
    [置顶] (奇迹冬瓜)坦克大战[MFC框架]
    spinner自定义,效果如腾讯QQ账号选择时候的下拉列表
    sqlmap dvwa SQL Injection使用小记
    Activex打包于发布完整版---微软证书制作
    假设web应用的文档根目录为MyApp,那么可以从哪里找到database.jar文件。
    无状态会话Bean、有状态会话Bean、CMP与BMP中,哪一种Bean不需要自己书写连接数据库的代码?
    EJB的优点有哪些?(选择2项)
    对触发器的认识;
    消耗资源的SQL的定位方法;
  • 原文地址:https://www.cnblogs.com/yang-2018/p/12894858.html
Copyright © 2011-2022 走看看