我正在尝试使用this code
来纠正QMenu中的快捷方式。class MenuProxyStyle(QProxyStyle):
def drawControl(self, element, option, painter, widget=None):
shortcut = ""
if element == QStyle.CE_MenuItem:
vals = option.text.split("\t")
if len(vals) == 2:
text, shortcut = vals
option.text = text
super(MenuProxyStyle, self).drawControl(element, option, painter,
widget)
if shortcut:
margin = 10 # QStyleHelper::dpiScaled(5)
self.proxy().drawItemText(painter,
option.rect.adjusted(margin, 0, -margin,
0),
Qt.AlignRight | Qt.AlignVCenter,
option.palette,
option.state & QStyle.State_Enabled,
shortcut, QPalette.Text)
然后,我仅使用如下所示的此类对菜单中的快捷方式进行右对齐。
self.file_menu = self.menuBar().addMenu(_("&File"))
self._proxy = MenuProxyStyle(self.file_menu.style())
self.file_menu.setStyle(self._proxy)
当未应用qdarkstylesheet时,它可以完美工作,但否则会失败,并且没有错误报告。
element == QStyle.CE_MenuItem:
使用QStyle.CE_MenuItem
时元素值永远与QDarkStyle
值不一致
当element
时14
的值为QStyle.CE_MenuItem
,但在QDS中报告错误,并且元素值永远不会为14。