Учебники (How-To & F.A.Q)
   13655

Как заставить qt приложения принимать тему GTK

После обновления Qt до версии 5.7, появилась проблема отображения Qt приложений, они перестали принимать тему GTK из-за удаления qgtkstyle. Было найдено следующее решение:

1) Установите qt5ct
sudo pacman -S qt5ct

2) Установите qt5-styleplugins
sudo pacman -S qt5-styleplugins

3) Редактируем /etc/profile
sudo nano /etc/profile

добавляем в конец файла следующую строку
export QT_QPA_PLATFORMTHEME="qt5ct"

4) Открываем qt5ct и выбираем в нем Style: gtk2, применяем Apply.
5) Перезаходим в систему.

Дополнительная информация: https://bbs.archlinux.org/viewtopic.php?pid=1637433p1637433

9 комментариев

avatar
Благодарю!
Как говориться «то что доктор прописал...», и очень во время.
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
0
avatar
с tansmission-qt прокатило

а вот с новостями облом (((
~$ quiterss 
Ошибка сегментирования core dumped)
Последний раз редактировалось
0
avatar
прошу прощения, но зачем transmission-qt если есть gtk?
0
avatar
Встречный вопрос, а почему бы не поэкспериментировать?
Каждый ищет свой путь :)
?
Всё гениальное — просто, а то что — сложно, то не работает!
Manjaro KDE-Minimal Stable от Spidey
0
avatar
c переходом tansmission-gtk на gtk3 не сразу сообразил, как с этим бороться.
нашёл qt-версию, и она меня не разочаровала.
очень впечатлила моменталльная отрисовка окна при первом запуске программы.
так и прижилась.
0
avatar
На 4-м шаге при открытии qt5ct выскочил диалог с сообщением, что:
1. Надо удалить переменную QT_STYLE_OVERRIDE и что
2. Переменная QT_QPA_PLATFORMTHEME установлена неправильно
Пришлось по первому пункту в файле /etc/environment закомментировать указанную переменную, а по второму — перезагрузиться. Тогда qt5ct открылся и дал выставить Style в gtk2.
Нашел также здесь похожие инструкции с небольшими отличиями:

1) Install qt5-styleplugins and qt5ct
2) Set environment variable in /etc/environment and add the following line:
QT_QPA_PLATFORMTHEME=qt5ct
3) Restart the system
4) Start qt5ct from terminal and select gtk2
5) Start one more time qt5ct from terminal with sudo rights (for qt apps which required sudo rights like manjaro-settings-manager) and select gtk2

Есть ли какая-нибудь разница где установлена переменная окружения?
1. в файле /etc/profile так
<code>export QT_QPA_PLATFORMTHEME="qt5ct"</code>
или
2. в файле /etc/environment так
<code>QT_QPA_PLATFORMTHEME=qt5ct</code>
У меня сейчас и в том и в другом файле эта переменная прописана.
0
avatar
На 4-м шаге при открытии qt5ct выскочил диалог с сообщением, что:
1. Надо удалить переменную QT_STYLE_OVERRIDE
Действительно теперь с версии 0.25 в qt5ct выскакивает такое предупреждение и пока переменная существует настроить невозможно.

Есть ли какая-нибудь разница где установлена переменная окружения?
В принципе, нет разницы. можно и в ~/.bashrc, и в ~/.xinitrc установить — но если эта переменная нужна для всех пользователей, включая root, то, ИМХО, в /etc/environment.

У меня сейчас и в том и в другом файле эта переменная прописана.
Когда понадобится, то изменив одну, можно забыть про вторую, а потом чесать репу — откуда что взялось.
0
avatar
На втором шаге: 2) Установите qt5-styleplugins
Я установил его из AUR, так как в репозиториях этого пакета нет
yaourt -S qt5-styleplugins
0
avatar
sudo pacman -S qt5ct qt5-styleplugins

 
sudo nano /etc/profile.d/qt.style.overide.sh Файл не существует создаем. 

добавляем 

export QT_QPA_PLATFORMTHEME="qt5ct"

Дальше как написано выше.


Р.С. Для кого то же придумали каталог profile.d
Последний раз редактировалось
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.