Макрос обнаруживает KDE или GNOME в qt4 - PullRequest
0 голосов
/ 19 сентября 2010

У меня проблема с обнаружением при использовании в GNOME или KDE операционная система, которая запускает приложение. Программа, которую я делаю QT4, и у меня проблемы с чувством в systray, так что я передаю его в KDE, но это не макрос для этого. PD: я использую KDE и C / C. Я ищу в сети, и я вижу это: Создание исполняемого файла для Windows с использованием Qt в Linux Но для KDE?

Привет Алехандро Эспиноса

Ответы [ 2 ]

1 голос
/ 19 сентября 2010

Qt не предоставляет такого рода определения, основанные на среде рабочего стола.Если вам нужно знать среду рабочего стола во время компиляции, тогда вам лучше всего изменить вашу систему сборки, чтобы передать необходимые определения компилятору.Окружение рабочего стола может быть заключено по различным предварительным условиям, таким как переменные среды, доступность приложений, библиотек или заголовков.Выбор зависит от того, что вы пытаетесь сделать.

Например, если вы берете маршрут проверки среды, KDE определяет переменную KDE_FULL_SESSION, тогда как GNOME имеет переменную DESKTOP_SESSION, установленную в "gnome".К вашему сведению, именно так Qt обнаруживает DE во время выполнения.

0 голосов
/ 10 августа 2015

вы можете сделать это с помощью bash, написав скрипт, содержащий данный код

#!/bin/bash
echo $XDG_CURRENT_DESKTOP

Теперь, когда вы выполняете код из Qprocess, вы можете прочитать вывод Qprocess и проверить, что выводQprocess.

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