2010-09-18 48 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(); 
} 
相关问题