如何阻止QApplication显示在dock中?

How can I stop a QApplication from showing up in the dock?

本文关键字:dock 显示 何阻止 QApplication      更新时间:2023-10-16

我正在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();
}

一种变通方法是像这里描述的那样手动执行。

幸运的是,如果它是一个cocoa应用程序,您可以自己隐藏Dock图标。要查看是否可行,请右键单击(Control-click)应用程序图标。如果"显示包装内容"在出现的菜单中,您可以隐藏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