如何使用 PyQt5 更改右箭头图标以访问 QMenuBar 中的隐藏菜单项?
How to change right-arrow icon to access hidden menu items in QMenuBar using PyQt5?
我在文档中没有找到关于此的参考资料。
您无法轻松设置此 "extension" 按钮的样式,因为该符号实际上是一个图标。
但是,您可以访问 QToolButton
小部件,将图标设置为您喜欢的任何图标。在 PyQt4 中,您可以使用 menubar.children()[0]
。这应该和 PyQt5 一致。查看Qt5source code,似乎总是先创建扩展图标,即使不显示,children()
方法returns对象按创建顺序(这是 0 的索引)。
一旦您引用了 QToolButton
,您就可以使用 menubar.children()[0].setIcon(my_qicon)
(或类似的)将图标设置为任何您喜欢的图标。
因为这是 google 上修改 "show more" 图标的首要项目之一:
另一种选择是使用 QToolbar
。你可以做同样的事情,除了第一个 child 是一个布局,第二个是你想要的 QToolButton
:
from qtpy import QtWidgets, QtGui
import sys
def call_back():
print('pressed')
app = QtWidgets.QApplication([])
widget = QtWidgets.QWidget()
layout = QtWidgets.QGridLayout(widget)
toolbar = QtWidgets.QToolBar()
layout.addWIdget(toolbar)
# add some actions
for i in range(10):
toolbar.addAction('test_{}'.format(i), call_back)
# change the icon, the first child is a layout!, the second it the toolbtn we want!
toolbar.children()[1].setIcon(QtGui.QIcon('path/to/image.png'))
widget.show()
app.exec_()
sys.exit()
我在文档中没有找到关于此的参考资料。
您无法轻松设置此 "extension" 按钮的样式,因为该符号实际上是一个图标。
但是,您可以访问 QToolButton
小部件,将图标设置为您喜欢的任何图标。在 PyQt4 中,您可以使用 menubar.children()[0]
。这应该和 PyQt5 一致。查看Qt5source code,似乎总是先创建扩展图标,即使不显示,children()
方法returns对象按创建顺序(这是 0 的索引)。
一旦您引用了 QToolButton
,您就可以使用 menubar.children()[0].setIcon(my_qicon)
(或类似的)将图标设置为任何您喜欢的图标。
因为这是 google 上修改 "show more" 图标的首要项目之一:
另一种选择是使用 QToolbar
。你可以做同样的事情,除了第一个 child 是一个布局,第二个是你想要的 QToolButton
:
from qtpy import QtWidgets, QtGui
import sys
def call_back():
print('pressed')
app = QtWidgets.QApplication([])
widget = QtWidgets.QWidget()
layout = QtWidgets.QGridLayout(widget)
toolbar = QtWidgets.QToolBar()
layout.addWIdget(toolbar)
# add some actions
for i in range(10):
toolbar.addAction('test_{}'.format(i), call_back)
# change the icon, the first child is a layout!, the second it the toolbtn we want!
toolbar.children()[1].setIcon(QtGui.QIcon('path/to/image.png'))
widget.show()
app.exec_()
sys.exit()