5 个解决方案
#1
m_trayIconMenu = new QMenu(this);
m_trayIconMenu->addAction(QStringLiteral("显示主窗口"), this, SLOT(show()));
m_trayIconMenu->addSeparator();
m_trayIconMenu->addAction(QStringLiteral("设置"));
m_trayIconMenu->addAction(QStringLiteral("退出"), this, SLOT(close()));
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setIcon(QIcon(":/images/portait.png"));
m_trayIcon->setToolTip(windowTitle());
m_trayIcon->setContextMenu(m_trayIconMenu);
m_trayIcon->show();
connect(m_trayIcon, &QSystemTrayIcon::activated, this, &MainWindow::ev_trayIcon_activated);
#2
上述代码在gnome shell环境上能正确显示在托盘上吗? 我环境上这样的代码是不行的
#3
在GNOME SHELL环境上,在屏幕的右上角是gnome shell的extnsion,应该说怎样将程序显示在extension区域
#4
这个应该是gnome提供的接口了.多半Qt里面没有现成的..你只能翻看gnome的文档了.
#5
嗯,这个问题属于GNOME Shell问题,新的gnome shell已经把右上角整成"system area",即系统软件,这个在代码里写死了,参考/usr/share/gnome-shell/js/ui/panel.js, 无法在system area区域实现动态添加应用程序图标
#1
m_trayIconMenu = new QMenu(this);
m_trayIconMenu->addAction(QStringLiteral("显示主窗口"), this, SLOT(show()));
m_trayIconMenu->addSeparator();
m_trayIconMenu->addAction(QStringLiteral("设置"));
m_trayIconMenu->addAction(QStringLiteral("退出"), this, SLOT(close()));
m_trayIcon = new QSystemTrayIcon(this);
m_trayIcon->setIcon(QIcon(":/images/portait.png"));
m_trayIcon->setToolTip(windowTitle());
m_trayIcon->setContextMenu(m_trayIconMenu);
m_trayIcon->show();
connect(m_trayIcon, &QSystemTrayIcon::activated, this, &MainWindow::ev_trayIcon_activated);
#2
上述代码在gnome shell环境上能正确显示在托盘上吗? 我环境上这样的代码是不行的
#3
在GNOME SHELL环境上,在屏幕的右上角是gnome shell的extnsion,应该说怎样将程序显示在extension区域
#4
这个应该是gnome提供的接口了.多半Qt里面没有现成的..你只能翻看gnome的文档了.
#5
嗯,这个问题属于GNOME Shell问题,新的gnome shell已经把右上角整成"system area",即系统软件,这个在代码里写死了,参考/usr/share/gnome-shell/js/ui/panel.js, 无法在system area区域实现动态添加应用程序图标