QToolButton提供一个快速的访问按钮,通常在工具栏内使用,一般不显示文本标签而显示图标。

一.按钮的样式风格设置

可以按照下面的风格对按钮进行样式设置

GUI学习之九——QToolButton的学习总结

从左到右依次是仅显示图标、仅显示文字、图标在文本左侧和文字在图标下侧。代码是这样的

btn.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)  #设置样式
btn.toolButtonStyle()                               #获取样式
#下面是样式设置的枚举值
Qt.ToolButtonIconOnly       #仅显示图标 ,返回值0
Qt.ToolButtonTextOnly       #仅显示文本,返回值1
Qt.ToolButtonTextBesideIcon #文本显示在图标旁边,返回值2
Qt.ToolButtonTextUnderIcon  #文本显示在图标下面,返回值3
Qt.ToolButtonFollowStyle    #遵循风格,返回值4

二. 箭头样式

GUI学习之九——QToolButton的学习总结

好多可以扩展的工具栏按钮是有扩展的箭头的,上面图上就是显示了Word带箭头的工具栏按钮。我们可以设置它的样式

btn.setArrowType(Qt.RightArrow)
print(btn.arrowType())

Qt.NoArrow             #无箭头,返回值0
Qt.UpArrow             #向上箭头,返回值1
Qt.DownArrow           #向下箭头,返回值2
Qt.LeftArrow           #向左箭头,返回值3
Qt.RightArrow          #向右箭头,返回值4      

这里要清楚一点:箭头的优先级是高于图标的,就是说设置了箭头图标就不显示了(就目前的水平而言),但是如果样式风格设置为只显示文本箭头也是不显示的。

四.自动提升

工具栏按钮的自动提升和QPushButton的扁平化是一样的视觉效果,区别就是设置后当鼠标指向按钮时外观会发生变化,而扁平化只有点击后才变化。(扁平化是QPushButton类里的功能,QToolButton是没有的。)

btn.setAutoRaise(True)   #设置自动提升    
btn.autoRaise()          #获取是否设置了自动提升

所以设置了autoraise后的按钮外观有三种效果:常规效果、鼠标指向时的效果和鼠标按下时的效果(图中从左到右)。

GUI学习之九——QToolButton的学习总结

 五.菜单应用

我们先做一个最简单的目录,并连接在工具栏按钮上

import sys
from PyQt5.Qt import *
app = QApplication(sys.argv)
window = QWidget()
window.resize(800,600)

btn = QToolButton(window)
btn.setText('menu')

menu = QMenu()

action_1 = QAction(menu)
action_1.setText('1')
action_2 = QAction(menu)
action_2.setText('2')
menu.addAction(action_1)
menu.addAction(action_2)
btn.setMenu(menu)


window.show()
sys.exit(app.exec_())
工具栏菜单

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2021-09-02
相关资源
相似解决方案