2010-09-18 22 views

回答

1

Qt不提供這種基於桌面環境定義的。如果您需要在編譯時瞭解桌面環境,那麼最好的辦法就是修改您的編譯系統,將必要的定義傳遞給編譯器。桌面環境可以通過不同的先決條件來完成,例如環境變量,應用程序的可用性,庫或標頭。選擇取決於你想要做什麼。

舉例來說,如果你把環境檢查路線,KDE定義KDE_FULL_SESSION變量,而GNOME有DESKTOP_SESSION變量設置爲「侏儒」。僅供參考,這就是Qt在運行時檢測DE的方式。

0

你可以當你執行從QProcess中的代碼,你可以閱讀QProcess中的輸出,並檢查什麼是QProcess中的輸出編寫腳本包含給定代碼現在

#!/bin/bash 
echo $XDG_CURRENT_DESKTOP 

使用bash的幫助下做到這一點。

{ 
QProcess chkdesk; 
chkdesk.start("getenv"); //getenv is bash script 
qDebug() << chkdesk.readAll(); 
} 
相關問題