如何阻止QApplication显示在Dock中?

时间:2016-09-01 00:57:49

标签: c++ qt command-line window qapplication

我在OS X上制作一个与桌面环境的特定部分(主要是使用QCursor的鼠标)交互的控制台应用程序,所以我不能使用QCoreApplication(尽管我想要多少)。

应用程序运行正常,只要它从命令行运行它就会显示在Dock中。我在网上查看了其他几个问题,但没有解决我遇到的问题。

我调查了QSystemTrayIcon,如果它能够摆脱弹出的讨厌的窗口,我会好好使用它。这是我的代码缩小到最低限度仍然存在上面提到的问题。

.pro:

TARGET = project

QT += core
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
QT -= gui

CONFIG += c++11
CONFIG += console
CONFIG -= app_bundle
TEMPLATE = app

SOURCES += main.cpp

main.cpp中:

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QCursor cur;
    cur.setPos(0,0);

    return a.exec();
}

1 个答案:

答案 0 :(得分:2)

解决方法是手动完成,如此处所述。

  

幸运的是,如果它是一个cocoa应用程序,你可以自己隐藏Dock图标。要查看是否可行,请在应用程序图标上单击鼠标右键(按住Control键单击)。如果出现的菜单中显示“显示包装内容”,则可以隐藏Dock中的图标。

     

如果是这种情况,请选择“显示包内容”并在Contents文件夹中查找"Info.plist"文件。使用TextEdit打开此文件,方法是右键单击它并从菜单中选择“打开方式 - 其他”。

     

在文件中,在第6行之后粘贴以下两行:

<key>LSUIElement</key>
<string>1</string>
     

保存文件并关闭它。要使更改生效,您需要将应用程序移动到桌面并将它们移回原始位置(OS X保留文件的缓存,因此您需要欺骗它再次检查它。)

     

现在,当您打开应用程序时,Dock中不会显示任何图标。

来源:http://www.macosxtips.co.uk/index_files/disable-the-dock-icon-for-any-application.php