• PyQt5Day10--按钮QToolButton


    1、QToolButton简介

      提供了一个快速访问按钮,通常在工具栏内部使用;

      通常工具按钮不显示文本签名,而是显示图标

      继承于QAbstractButton

    2、创建按钮、设置文本、图标、工具提示和按钮样式风格

     1 btn = QToolButton(window)  # 创建工具按钮
     2 btn.setText("工具")
     3 btn.setIcon(QIcon('xxx.png')) # 设置图标
     4 btn.setIconSize(QSize(60,60)) # 设置图标大小
     5 btn.setToolTip("这是一个按钮") # 设置提示
     6 # 设置样式风格
     7 # 设置仅显示图标
     8 btn.setToolButtonStyle(Qt.ToolButtonIconOnly) 
     9 # 设置仅显示文本
    10 btn.setToolButtonStyle(Qt.ToolButtonTextOnly)
    11 # 设置文本在图标旁边
    12 btn.setToolButtonStyle(Qt.ToolButtonTextBesideIcon) 
    13 # 设置文本在图标下方
    14 btn.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
    15 # 设置遵循风格
    16 btn.setToolButtonStyle(Qt.ToolButtonFollowStyle)

    3、设置箭头、自动提升

     1 # *********第二部分***********begin
     2 tb1 = QToolButton(window)
     3 tb1.resize(50,50)
     4 tb2 = QToolButton(window)
     5 tb2.resize(50,50)
     6 tb2.move(50,0)
     7 tb3 = QToolButton(window)
     8 tb3.resize(50,50)
     9 tb3.move(100,0)
    10 tb4 = QToolButton(window)
    11 tb4.resize(50,50)
    12 tb4.move(150,0)
    13 # 没有箭头
    14 # tb.setArrowType(Qt.NoArrow)
    15 # 箭头向上
    16 tb1.setArrowType(Qt.UpArrow)
    17 # 箭头向下
    18 tb2.setArrowType(Qt.DownArrow)
    19 # 设置箭头向左
    20 tb3.setArrowType(Qt.LeftArrow)
    21 # 设置箭头向右
    22 tb4.setArrowType(Qt.RightArrow)
    23 
    24 tb1.setAutoRaise(True) # 设置箭头的扁平化(自动提升)
    25 
    26 # *********第二部分***********end

    4、菜单

     1 # *********第三部分***********begin
     2 tb = QToolButton(window)
     3 tb.setText("工具")
     4 tb.setArrowType(Qt.RightArrow)
     5 tb.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
     6 
     7 menu = QMenu(tb)
     8 submenu = QMenu(menu)
     9 submenu.setTitle("子菜单")
    10 submenu.setIcon(QIcon("xxx.png"))
    11 
    12 action1 = QAction(QIcon('xxx.png'),'行为',menu)
    13 action1.triggered.connect(lambda :print("点击了行为菜单"))
    14 action1.setData([1,2,3])
    15 action2 = QAction('行为',menu)
    16 action2.triggered.connect(lambda :print("....."))
    17 action2.setData({'name':'feng','age':20})
    18 
    19 menu.addMenu(submenu)
    20 menu.addSeparator()
    21 menu.addAction(action1)
    22 menu.addAction(action2)
    23 tb.setMenu(menu)
    24 
    25 # 设置菜单弹出方式:点击右边按钮弹出
    26 # tb.setPopupMode(QToolButton.MenuButtonPopup)
    27 # 设置菜单弹出方式:点击按钮弹出
    28 tb.setPopupMode(QToolButton.InstantPopup)
    29 
    30 tb.clicked.connect(lambda :print("这个工具按钮被点击了"))
    31 
    32 # 信号
    33 def do_action(action): # 点击行为按钮后会实现相应行为的功能,并读取数据
    34     print("点击了行为",action.data())
    35 tb.triggered.connect(do_action)
    36 
    37 window.show()
    38 sys.exit(app.exec_())
    39 # *********第三部分***********end
  • 相关阅读:
    学习笔记:javascript 窗口对象(window)
    学习笔记:javascript内置对象:数组对象
    学习笔记:javascript内置对象:日期对象
    学习笔记:javascript内置对象:数学对象
    学习笔记:javascript内置对象:字符串对象
    初次尝试轮播图
    今天我开通了博客园
    javaweb项目运转流程
    idea tomcat启动无效
    mysql事务管理及spring声明式事务中主动异常抛出使数据库回滚
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12534318.html
Copyright © 2020-2023  润新知