pyqt5-009

QToolButton:

  描述:

    提供了一个快速访问按钮

    通常是在工具栏内部使用

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

    例如:

  继承:QAbstractButton

  功能作用:

    创建按钮

    (继承)设置文本,图标,工具提示:

      API:

扫描二维码关注公众号,回复: 11206351 查看本文章

        setText(str)

        setIcon(QIcon)

        setIconSize(QSize)

        setToolTip(str)

      注意:如果文本和图标同时设置,则默认只展示图标

    按钮样式风格:

      API:

        setToolButtonStyle(Qt.ToolButtonStyle)(风格取值):

          Qt.ToolButtonconOnly(仅显示图标)

          Qt.ToolButtonTextOnly(仅显示文字)

          Qt.ToolButtonTextBesideIcon(文本显示在图标旁边)

          Qt.ToolButtonTextUnderIcon(文本显示在图标下方)

          Qt.ToolButtonFollowStyle(遵循风格)

        toolButtonStyle()

      应用场景:设置按钮的图标和文字组合

    设置箭头:

      API:

        setArrowType(Qt.ArrowType) (Qt.ArrowType):

          Qt.NoArrow 无箭头

          Qt.UpArrow  向上箭头

          Qt.DownArrow  向下箭头

          Qt.LeftArrow  向左箭头

          Qt.RightArrow  向右箭头

        arrowType()

      应用场景:将按钮编程一个具备特殊箭头的图标的按钮

    自动提升:

      API:

        setAutoRaise(bool)

        autoRaise()

      应用场景:

        在自动提升模式下,该按钮仅在鼠标指向是才会绘制3D帧

        在工具栏(QToolBar)中,默认就是自动提升

    菜单:

      API:

        setMenu(QMenu)

        ment()

      应用场景:通过菜单展示更多选项

    菜单弹出模式:

      API:

        setPopupMode(QToolButton.ToolButtonPopuMode): QToolButton.ToolButtonPopupMode:

          QToolButton.DelayedPopup:(鼠标按住一会才显示;类似于浏览器后退按钮)

          QToolButton.MenuButtonPopup:(有一个专门的指示箭头;点击箭头才显示)

          QToolButton.InstantPopup:(点了按钮就显示;点击信号不会发射)

        popupMode()

      应用场景:设置菜单弹出的触发方式

  信号:

    triggered(QAction*action):

      当点击某个action是触发,并会将action传递出来

      小技巧:

        QAction对象可以通过:

          setData(Any):绑定数据

          data():获取数据

from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.resize(300,300)
window.setWindowTitle('QToolButton使用')


tb = QToolButton(window)
tb.setText('工具')
# QToolButton 不显示文本,只显示图标
tb.setIcon(QIcon('click.jpg'))
tb.setIconSize(QSize(60, 60))
tb.setToolTip('新建')
# 显示提示信息

tb.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)
# 设置按钮样式风格
# Qt.ToolButtonIconOnly 仅显示图标
# Qt.ToolButtonTextOnly 仅显示文字
# Qt.ToolButtonTextBesideIcon 文本显示在图标旁边
# Qt.ToolButtonTextUnderIcon 文本显示在图标下方
# Qt.ToolButtonFollowStyle 遵循风格


# 箭头优先级高

tb.setArrowType(Qt.DownArrow)
# 设置箭头类型
# Qt.NoArrow 无箭头
# Qt.UpArrow  向上箭头
# Qt.DownArrow  向下箭头
# Qt.LeftArrow  向左箭头
# Qt.RightArrow  向右箭头

tb.setAutoRaise(True)
# 设置提升,呈现3D

menu = QMenu(tb)
sub_menu = QMenu(menu)
sub_menu.setTitle('新建')
sub_menu.setIcon(QIcon('click.jpg'))

action = QAction(QIcon('click.jpg'), '行为', menu)
# action.triggered.connect(lambda : print('开始'))
action.setData([1,2,3])
# 为行为绑定数据

action1 = QAction(QIcon('click.jpg'), '行为1', menu)
action1.setData({'name':'sz'})

menu.addMenu(sub_menu)
menu.addSeparator()
menu.addAction(action)

menu.addAction(action1)

tb.clicked.connect(lambda :print('发动了'))

tb.setMenu(menu)
tb.setPopupMode(QToolButton.InstantPopup)
# setPopupMode(QToolButton.ToolButtonPopuMode): QToolButton.ToolButtonPopupMode:
# QToolButton.DelayedPopup:(鼠标按住一会才显示;类似于浏览器后退按钮)
# QToolButton.MenuButtonPopup:(有一个专门的指示箭头;点击箭头才显示)
# QToolButton.InstantPopup:(点了按钮就显示;点击信号不会发射)

def do_action(action):
    print('触发行为', action.data())

tb.triggered.connect(do_action)

# btn = QPushButton(window)
# btn.setText('一般按钮')
# btn.move(100, 100)
# btn.setFlat(True)
#
# menu = QMenu(btn)
# menu.setTitle('菜单')

# sub_menu = QMenu(menu)
# sub_menu.setTitle('新建')
# sub_menu.setIcon(QIcon('click.jpg'))
#
# action = QAction(QIcon('click.jpg'), '行为', menu)
# action.triggered.connect(lambda : print('开始'))
#
# menu.addMenu(sub_menu)
# menu.addSeparator()
# menu.addAction(action)
#
# btn.setMenu(menu)


window.show()
sys.exit(app.exec_())

猜你喜欢

转载自www.cnblogs.com/superSmall/p/12895734.html
009