如何将系统图标放在菜单中?

How to put system icons in menus?

我有 运行 来自 Qt 的菜单示例,菜单上没有图标,只有文本。大多数应用程序(如来自 Ubuntu 的 pcmanfm 和 caja)都有相似的图标,所以我认为它们是系统范围的而不是特定于应用程序的。我怎么能把图标放在菜单项中?代码示例会很有趣。

要获取系统的图标,您必须使用方法QIcon::fromTheme()

示例:

newAct = new QAction(tr("&New"), this);
newAct->setIcon(QIcon::fromTheme("document-new"));

Qt作为freedesktop icon的后端使用,它的名字有规则,更新后的列表可以在下面找到link

不幸的是,其他答案中的 QIcon::fromTheme() 函数无法移植到 Mac 或 windows。使用 QStyle::standardIcon().

可能会有更好的运气