我在GNOME或运行应用程序KDE 操作系统一起使用时,检测的问题。 节目我做QT4,而我在系统托盘look- 麻烦的感觉,所以我把它传递给KDE,但不是 宏这样做。 PD:我用KDE和C/C。 我在网上搜索,我看到: Creating executable for Windows using Qt on Linux 但对于KDE?宏检测KDE或GNOME在QT4
问候亚历杭德罗·埃斯皮诺萨
我在GNOME或运行应用程序KDE 操作系统一起使用时,检测的问题。 节目我做QT4,而我在系统托盘look- 麻烦的感觉,所以我把它传递给KDE,但不是 宏这样做。 PD:我用KDE和C/C。 我在网上搜索,我看到: Creating executable for Windows using Qt on Linux 但对于KDE?宏检测KDE或GNOME在QT4
问候亚历杭德罗·埃斯皮诺萨
Qt不提供这种基于桌面环境定义的。如果您需要在编译时了解桌面环境,那么最好的办法就是修改您的编译系统,将必要的定义传递给编译器。桌面环境可以通过不同的先决条件来完成,例如环境变量,应用程序的可用性,库或标头。选择取决于你想要做什么。
举例来说,如果你把环境检查路线,KDE定义KDE_FULL_SESSION变量,而GNOME有DESKTOP_SESSION变量设置为“侏儒”。仅供参考,这就是Qt在运行时检测DE的方式。
你可以当你执行从QProcess中的代码,你可以阅读QProcess中的输出,并检查什么是QProcess中的输出编写脚本包含给定代码现在
#!/bin/bash
echo $XDG_CURRENT_DESKTOP
使用bash的帮助下做到这一点。
{
QProcess chkdesk;
chkdesk.start("getenv"); //getenv is bash script
qDebug() << chkdesk.readAll();
}