【问题标题】:QAction's icon doesn't show in QMenuQMenu 中不显示 QAction 的图标
【发布时间】:2020-08-28 20:18:26
【问题描述】:

我在 Qt4 中有一个工作程序。将其移植到 Qt5 后,QActions 的图标不再显示在 QMenu 中;只有文字显示。图标在工具栏中显示正常,但不在菜单中。我已经将应用程序设置为禁用“AA_DontShowIconsInMenus”,但无济于事。以下是部分代码:

pMenuBar = new QMenuBar(this);
pMenuBar->setObjectName(QString::fromUtf8("Menu Bar"));
pMenuBar->setGeometry(QRect(0, 0, 800, 27));
MyIcon.addFile(":/images/filenew.ico", QSize(), QIcon::Normal, QIcon::On);
pAction = new QAction(tr("&New"), this);
pAction->setIcon(MyIcon);
pAction->setIconVisibleInMenu(true);
pAction->setShortcuts(QKeySequence::New);
pAction->setStatusTip(tr("New"));
pMenuFile = new QMenu(pMenuBar);
pMenuFile->setObjectName(QString::fromUtf8("File Menu"));
// pMenuFile->menuAction()->setIconVisibleInMenu(true);
pMenuFile->addAction(pAction);
pMenuBar->addAction(pMenuFile->menuAction());
setMenuBar(pMenuBar);

【问题讨论】:

  • 你看到你的“文件菜单”了吗? setObjectName 将设置 QObject Name 属性,但不设置菜单标题...您使用的是哪个操作系统?
  • @Xplatforms,是的,文件菜单工作得很好。操作系统是 Fedora 32 和 Gnome 桌面。

标签: qt qt5 qmenu qaction qicon


【解决方案1】:

我猜*.ico 不支持,试试*.png

您可以检查: QImageReader::supportedImageFormats()QImageWriter::supportedImageFormats()

【讨论】:

  • 我将我所有的 QIcon 更改为来自 PNG 文件,但不幸的是它没有任何区别。请记住,这曾经在 Qt4 中工作。图标在工具栏中显示正常,但在菜单中显示不正常。
  • 好吧,它对我的​​不起作用。这是我的 qtdiag 结果:“xcb”操作系统上的 Qt 5.13.2 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 10.0.1 20200311 (Red Hat 10.0.1-0.9)) 操作系统:Fedora 32(工作站版) [linux版本5.6.6-300.fc32.x86_64]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
相关资源
最近更新 更多