Qt - как определить, работает ли приложение в GNOME или KDE?


person Jake Petroules    schedule 31.07.2010    source источник


Ответы (3)


Использовать QProcess для запуска pidof foo, а затем проверить его стандартный вывод? Если это не то, что вам нужно, выполните поиск /proc/.

person schemacs    schedule 10.08.2010

Обычно этого делать не следует. Как правило, если ваше приложение ведет себя по-разному в зависимости от среды рабочего стола, это будет неприятным сюрпризом для любого пользователя, который переключается между ними.

Альтернатива

Используйте команды, не зависящие от DE, например xdg-open. Преимущества:

  • Вам не нужно писать логику самостоятельно (xdg-utils уже сделал это)
  • Более удобный. Он соответствует фактическим предпочтениям пользователя; многие пользователи используют один DE, но предпочитают некоторые приложения из другого DE.
  • Поддерживает другие DE, такие как XFCE, LXDE, Unity и т. Д.

Например, вместо того, чтобы открывать URL-адрес в Firefox или Konqueror в соответствии с текущим запущенным DE, передайте URL-адрес xdg-open, чтобы открыть его в предпочтительном для пользователя приложении. (Пользователь может быть пользователем Chromium.) Не вводите жестко nautilus или dolphin для GNOME и KDE; вместо этого откройте путь с помощью xdg-open.

Точно так же для других форм взаимодействия с DE попробуйте использовать спецификации Freedesktop, а не пытаться угадайте, что работает DE. Существуют стандарты для перемещения файлов в корзину, добавления апплетов на панели задач и добавления файлов. в список последних файлов, среди прочего.

person Mechanical snail    schedule 19.09.2012

Я считаю, что правильным способом делать то, что делает pidof, является просмотр записей в / proc. Здесь есть еще одна тема: Найти PID процесса по имени без использования popen () или system ()

person siride    schedule 31.07.2010