【发布时间】:2014-09-25 08:48:13
【问题描述】:
我正在尝试更改 QMenu 上标签/文本的样式和/或字体,而不影响其子项。我在 Python 中使用 PySide 执行此操作(其工作方式与 Qt 类似)。
我试过了:
menu = QtGui.QMenu()
f = menu.font()
f.setBold(True)
menu.setFont(f)
和
menu = QtGui.QMenu()
menu.setStyleSheet("QMenu{font-weight: bold;}")
这两种方法都不会更改菜单本身的标签,但会在其所有子项上进行。
我宁愿直接在 QMenu 上设置样式(或另一个类,如果它的作用相似并且可以实现的话),而不是在其父级上应用样式表。
目标
我的想法是我有一个包含各种子菜单的菜单(根据服务器上的文件夹有些动态),其中一些需要粗体和一些斜体。因此,我想动态添加这些子 QMenu 并相应地设置它们的样式。
【问题讨论】:
-
不清楚,样式表代码目前是否适合您,但您想在没有样式表的情况下达到所需的效果?
-
在那之后你会如何处理
menu对象? menu.exec 还是什么?你把它放在哪里?您想在哪里看到粗体字? -
@N1ghtLight:如前所述,使用 setStyleSheet 会产生与调整字体相同的输出。两者都不是我想要的。
-
@Ezee:我将它作为子菜单添加到另一个菜单中,并且想要一个粗体/斜体子菜单项的变体并单独设置它们的样式(它们拥有自己的菜单项,所以它是一个 QMenu)跨度>
标签: qt python-2.7 qt4 pyside