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