1

我是QSystemTrayIcon第一次使用,实施起来很简单。我的代码如下所示:

if(!connect(mTrayIcon, &QSystemTrayIcon::activated, this, &MiniStudio::onTrayActivated)) {
    qWarning()<<"ERROR: could not connect QSystemTrayIcon";
}

mTrayIcon->setIcon(QIcon(":/icons/record.svg"));
mTrayIcon->setToolTip("Show MiniStudio controls");
mTrayIcon->setContextMenu(nullptr);
mTrayIcon->show();

正如您可能从我的代码中理解的那样,我不想显示上下文菜单,我只想要托盘中的一个按钮,单击该按钮会显示我的应用程序窗口。

然而,代码有点工作,即使我指定了一个“nullptr”上下文菜单,每当我点击它时,我的托盘图标下仍然会出现一个看起来很奇怪的框,就好像有一个没有任何项目的上下文菜单一样(请看下面的截图)。

QSystemTrayIcon 下奇怪的框

所以我的问题是:

  • 难道我做错了什么?
  • 我怎样才能让奇怪的盒子消失?
  • 这是一个错误,还是我平台上 Qt 的一个特性?

PS:我正在为Ubuntu 16.04 amd64开发这段代码,但我认为这个问题的答案应该与任何平台相关。

注意:我也尝试过忽略 setContextMenu() 调用而不是使用 调用它nullptr,但这也不起作用。结果完全一样。

欢迎任何输入,

谢谢!

4

0 回答 0