QToolButton - 图标顶部的文本
Posted
技术标签:
【中文标题】QToolButton - 图标顶部的文本【英文标题】:QToolButton - Text on top of icon 【发布时间】:2016-03-15 19:59:20 【问题描述】:在论坛上搜索了很多..但找不到合理的东西。 我有一个 QToolButton 和一个图标。我不想将文本烘焙到图标图像中,我宁愿使用 btn.setText("Text") 获得文本。 文本设置在我不想要的图标下方的问题。 它应该在图标的顶部。有没有办法做到这一点? 我猜想使用自定义 QToolButton..有人可以帮我吗?
btn = QtGui.QToolButton()
btn.setText("Text")
icon = QtGui.QIcon()
icon.addPixmap(os.path.join('path_to_icon.png', QtGui.QIcon.Normal, QtGui.QIcon.On)
btn.setIcon(icon)
理想情况下:
icon.setToolButtonStyle(QtCore.Qt.ToolButtonTextOnTopIcon)
有没有办法使用样式表来偏移文本? 任何帮助表示赞赏
【问题讨论】:
有什么理由不只是使用 QPushButton? 由于菜单功能和图标状态模式 延迟弹出,菜单指示器 【参考方案1】:找到了一个很好的解决方案!
b = QtGui.QToolButton()
l = QtGui.QVBoxLayout(b)
b.setFixedSize(50, 50)
b.setIconSize(QtCore.QSize(50,50))
standardFont = QtGui.QFont("Arial", 10, QtGui.QFont.Bold)
standardFont.setCapitalization(QtGui.QFont.AllUppercase)
text = QtGui.QLabel("Text")
b.setIcon(QtGui.QIcon(os.path.join(ICON_DIR, 'csLighting_ftrackTime.png')))
l.setContentsMargins(0,0,0,0)
l.addStretch()
l.addWidget(text, 0, QtCore.Qt.AlignCenter)
text.setFont(standardFont)
b.show()
【讨论】:
以上是关于QToolButton - 图标顶部的文本的主要内容,如果未能解决你的问题,请参考以下文章
带有文本的 QToolButton:覆盖最小高度以模仿常规按钮高度