【问题标题】:How can I stop a QApplication from showing up in the dock?如何阻止 QApplication 出现在 Dock 中?
【发布时间】:2017-01-08 17:26:45
【问题描述】:

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

【问题讨论】:

  • 无法重现您使用 Qt5@Linux 的问题。您的代码在没有任何窗口的情况下将光标设置为 (0,0) 并继续运行 a.exec 直到我手动停止它。
  • @Sergey Huh。它为我打开了一个窗口......
  • @FlareCat hiding it manually 怎么样?
  • @HiI'mFrogatto 谢谢!我打算尝试将其保留为独立的可执行文件,但我很快就会试一试。
  • @HiI'mFrogatto 谢谢!有效。如果您创建答案,我会接受。

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


【解决方案1】:

一种解决方法是按照此处所述手动进行。

幸运的是,如果是可可应用程序,您可以自己隐藏 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-29
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多