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
原文地址:https://www.cnblogs.com/fengxb1213/p/12534318.html