2016-09-01 47 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