0

我有一个创建 QMenu 并将 QMenu 添加到第一个菜单的程序。程序在qt4上运行完美,但是当我用qt5编译时,子菜单没有出现。这是一个示例代码:

QMenu *menu = this->menuBar()->addMenu("Menu");
QMenu *menu2 = menu->addMenu("Menu2");
QAction *act = menu2->addAction("act");

QSystemTrayIcon *qsti = new QSystemTrayIcon(this);
qsti->setContextMenu(menu);
qsti->show();

菜单栏正确显示所有内容,但 systemtrayicon 无法显示子菜单。截图: 菜单栏 系统托盘

在这里,您可以看到第二张图片(系统托盘)中没有子菜单。有什么办法可以解决这个问题吗?我在带有 Qt 5.4.1 的 Ubuntu 15.04 上。

4

1 回答 1

0

前进是:

QMenu *menu = this->menuBar()->addMenu("Menu");
QMenu *menu2 = new QMenu("Menu2", menu);
QAction *act = menu2->addAction("act");
menu->addMenu(menu2);

QSystemTrayIcon *icon = new QSystemTrayIcon(this);
icon->setContextMenu(menu);
icon->show();

现在它显示有动作,但在我的 Ubuntu 上显示有某种错误。你能试试吗?

于 2015-08-13T18:56:50.913 回答