C++ 如何阻止QApplication出现在dock中?

C++ 如何阻止QApplication出现在dock中?,c++,qt,command-line,window,qapplication,C++,Qt,Command Line,Window,Qapplication,我正在OSX上制作一个控制台应用程序,它与桌面环境的特定部分交互,主要是使用QCursor的鼠标,因此无论我多么想使用QCoreApplication,我都无法使用它 该应用程序运行良好,只是每当我从命令行运行它时,它都会显示在dock中。我在网上查看了其他几个问题,但没有一个解决了我的问题 我查看了QSystemTrayIcon,如果它能摆脱弹出的讨厌窗口,我会很好地使用它。下面是我的代码,它的范围缩小到了最低限度,仍然存在我上面提到的问题 pro TARGET = project QT +

我正在OSX上制作一个控制台应用程序,它与桌面环境的特定部分交互,主要是使用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();
}

一种解决方法是按此处所述手动执行

幸运的是,如果它是cocoa应用程序,您可以自己隐藏Dock图标。若要查看是否可能,请右键单击Control并单击应用程序图标。如果显示的菜单中有“显示软件包内容”,则可以在Dock中隐藏图标

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

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

<key>LSUIElement</key>
<string>1</string>
保存文件并关闭它。为了使更改生效,您需要将应用程序移动到桌面,并将它们移回其原始位置。OS X保留文件的缓存,因此您需要诱使它再次检查该文件

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


来源:

无法用复制您的问题Qt5@Linux. 您的代码在没有任何窗口的情况下将光标设置为0,0,并继续运行a.exec,直到我手动停止为止。@Sergey-Huh。它为我打开了一扇窗…@FlareCat怎么样?@HiI'mFrogatto谢谢!我本来打算把它作为一个独立的可执行文件保存,但我很快就会试一试。@HiI'mFrogatto谢谢!成功了。如果你创造一个答案,我会接受的。