代码之家  ›  专栏  ›  技术社区  ›  Flare Cat

如何阻止QA应用程序出现在被告席上?

  •  3
  • Flare Cat  · 技术社区  · 8 年前

    我正在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
    

    主cpp:

    #include <QApplication>
    
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        QCursor cur;
        cur.setPos(0,0);
    
        return a.exec();
    }
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   Community Egal    4 年前

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

    幸运的是,如果它是一个可可应用程序,您可以自己隐藏Dock图标。要查看是否可行,请右键单击(Control单击)应用程序图标。如果出现的菜单中有“Show Package Contents”,则可以在Dock中隐藏图标。

    如果是这种情况,请选择“显示软件包内容”并查找 "Info.plist" 目录文件夹中的文件。使用TextEdit打开此文件,方法是右键单击它并从菜单中选择“Open With-Other”。

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

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

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

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

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