Почему мое приложение более красочное в режиме sudo?

Я создал приложение в Qt Creator, когда я запускаю его в обычном режиме и в режиме sudo, его цвет и значки отличаются, почему это происходит, я чувствую, что в режиме sudo он выглядит великолепно. См. Ниже изображения обоих.

Обычный режим

Выше приведены случаи, когда приложение работает в обычном режиме.

введите здесь описание изображения

Вот как это выглядит в режиме sudo. Мне нужно запустить приложение в режиме sudo, потому что оно использует контакты GPIO в raspberry pi. Но работа в режиме sudo выдает предупреждение о том, что QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root' when running sudo commands

и мой файл QSettings сохраняется где-то в корневой папке. Чтобы избежать этого (чтобы файл настроек сохранялся в папке .config), я запустил свое приложение, используя следующую команду

sudo -E ./MyApp

Таким образом, переменная среды сохраняется, а QSettings сохраняются в папке .config, но приложение выглядит как обычный режим (первое изображение).

Итак, мой вопрос: как я могу сохранить переменную среды, и в то же время приложение выглядит как режим sudo (второе изображение)?

я использую c++ в Qtcreator (qt5) для создания приложений в raspberry pi os


person Arun K    schedule 16.01.2021    source источник
comment
может быть, вы используете другую оболочку? например зш/баш/ш/...   -  person ch271828n    schedule 16.01.2021
comment
Вам не нужен sudo или root для использования GPIO на Pi: stackoverflow.com/questions/12133860/   -  person Dai    schedule 16.01.2021
comment
Когда вы используете sudo, вы работаете как другой пользователь (пользователь root), пользователь с другими настройками и темами для элементов пользовательского интерфейса.   -  person Some programmer dude    schedule 16.01.2021


Ответы (1)


Хай, я получил ответ, запусти приложение с помощью следующей команды

sudo --preserve-env=XDG_RUNTIME_DIR ./MyApp

Вышеупомянутая команда удовлетворила оба моих условия

person Arun K    schedule 16.01.2021