在Mac上启动没有停靠栏图标的Qt托盘流程

时间:2018-03-01 16:02:19

标签: c++ macos qt tray

我有一个包含GUI,服务和托盘的捆绑包。请注意,它们是三个独立的过程。

这可能听起来很奇怪,托盘是服务的代表,用户可以打开GUI,如果没有退出,将创建一个托盘。

所以在我的GUI代码中,我有类似下面的内容:

QProcess::startDetached("my-tray");

整个软件包配置为GUI是主要的可执行文件。

问题是:当GUI启动托盘时,我可以在Dock中看到两个图标。我想要的是在托盘中没有任何额外图标的情况下启动托盘。

我尝试按照建议here将QT_MAC_DISABLE_FOREGROUND_APPLICATION_TRANSFORM设置为true。

我尝试按照建议here以编程方式更改激活政策。

我认为在plist文件中将LSUIElement设置为1对我来说是一个有效的解决方案,因为我仍然希望GUI在Dock中显示一个图标。

目前,我将所有进程放在捆绑包中的MacOS文件夹中。将托盘移动到Resources文件夹导致它无法加载一些可可库。

  

此应用程序无法启动,因为它无法找到或加载   Qt平台插件“cocoa”中的“”。

整个项目是一个用C ++编写的Qt项目。托盘流程本质上是一个QSystemTrayIcon。

1 个答案:

答案 0 :(得分:1)

  

问题是:当GUI启动托盘时,我可以在Dock中看到两个图标。

一种可能的解决方案是制作"托盘"处理自己的应用程序包(并且仍然放在主应用程序的包中)并设置

    mean      t value
    0.004      3.12
    0.021      3.41 
      .         .
      .         .
   -0.067     -3.60

在托盘包的mean<-df$mean timestamp<-seq(from=-30, to=60) plot(mean~timestamp, type="h", lwd=2, col="darkgrey", main="test") 中。