2016-09-01 20 views
3

我在OS X上与桌面环境的特定部分(主要是使用QCursor的鼠标)进行交互的控制台应用程序,所以我不能使用QCoreApplication(尽管我想要多少)。如何阻止QApplication在码头中显示?

该应用程序工作正常,它只是它显示在码头,每当我从命令行运行它。我在网上查看了其他几个问题,但没有解决我遇到的问题。

我看着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(); 
} 
+0

无法与QT5 @ Linux的重现您的问题。你的代码将光标设置为(0,0)而没有任何窗口,并继续运行'a.exec'直到我手动停止它。 – Sergey

+0

@Sergey Huh。它为我打开一个窗口... –

+1

@FlareCat如何[手动隐藏](http://www.macosxtips.co.uk/index_files/disable-the-dock-icon-for-any-application.php) ? –

回答

2

一个解决方法是做手工的描述在这里。

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

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

在文件中,只是在下面两行粘贴六号线:

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

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

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

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