簡體   English   中英

宏在Qt4中檢測KDE或GNOME

[英]Macro detect KDE or GNOME in qt4

我在檢測何時在運行該應用程序的GNOME或KDE操作系統中使用時遇到問題。 我正在執行QT4的程序,無法在系統托盤中尋找外觀,因此我將其傳遞給KDE,但這不是宏。 PD:我使用KDE和C / C。我在Web中搜索,然后看到以下內容: 在Linux上使用Qt為Windows創建可執行文件但是對於KDE?

問候亞歷杭德羅·埃斯皮諾薩

Qt不提供基於桌面環境的此類定義。 如果您需要在編譯時了解桌面環境,那么最好的選擇是修改構建系統,以將必要的定義傳遞給編譯器。 可以通過不同的先決條件來總結桌面環境,例如環境變量,應用程序的可用性,庫或標頭。 選擇取決於您要執行的操作。

例如,如果您采用環境檢查路線,則KDE會定義KDE_FULL_SESSION變量,而GNOME會將DESKTOP_SESSION變量設置為“ gnome”。 僅供參考,這就是Qt在運行時檢測DE的方式。

您可以通過編寫包含給定代碼的腳本在bash的幫助下完成此操作

#!/bin/bash
echo $XDG_CURRENT_DESKTOP

現在,當您從Qprocess執行代碼時,您可以讀取Qprocess的輸出並檢查Qprocess的輸出是什么。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM