Исправлена проблема с рамкой и тенью окна для приложений Qt в Ubuntu 23.10.
Ваших приложениях НЕТ границы окна и тени в Ubuntu 23.10? Вот быстрые обходные пути для приложений, основанных на наборе инструментов Qt UI.
В Linux Desktop приложения создаются с использованием другого набора инструментов пользовательского интерфейса. В то время как GNOME, Cinnamon и XFCE используют GTK3/4, KDE и LxQt используют Qt для своих приложений.
Ubuntu по умолчанию использует GNOME в качестве среды рабочего стола по умолчанию, но пользователь также может использовать приложения Qt, такие как qbittorrent, инструмент для создания снимков экрана ksnip, видеоредактор kdenlive и другие.
В Ubuntu 23.10 приложения Qt выглядят странно. У них очень тонкая граница без тени, которая выглядит как будто без границ. Это проблема исходного кода, которая также возникает в книжном черве Debian 12.
Приложения Qt в Ubuntu 23.10
Если у вас возникла похожая проблема, в этом руководстве будет показано, как ее исправить (обходной путь) двумя способами:
- Плагин xcb QPA — для приложений Qt, работающих на X11.
- Тема QGnomePlatform — приложение Qt включено в GNOME, но пока отсутствует поддержка Qt6 в Ubuntu.
ПРИМЕЧАНИЕ. В Ubuntu вы можете использовать как «Вариант 1», так и «Вариант 2». Они не конфликтуют друг с другом.
Вариант 1. Установите среду xcb QPA.
Если большинство ваших приложений Qt работают на X11, этот вариант — хороший выбор.
1. Просто откройте «Файлы», нажмите Ctrl+H, чтобы отобразить скрытые файлы/папки.
Затем найдите файл .profile, щелкните его правой кнопкой мыши и выберите «Открыть в текстовом редакторе».
2. Когда файл откроется, прокрутите вниз и добавьте в конце новую строку ниже:
export QT_QPA_PLATFORM=xcb
После сохранения файла выйдите из системы и снова войдите. Затем попробуйте запустить приложения Qt, чтобы увидеть результат.
Советы: не выходя из системы и не входя в нее снова, вы можете нажать Ctrl+Alt+T, чтобы открыть терминал. Затем запустите команду export QT_QPA_PLATFORM=xcb
, чтобы установить среду для этого окна терминала. Наконец, запустите приложение Qt с этого терминала.
Вариант 2. Используйте тему QGnomePlatform.
В Fedora Linux есть проект QGnomePlatform, позволяющий приложениям Qt максимально хорошо вписаться в среду GNOME, хотя он больше не поддерживается из-за перехода на QAdwaitaDecorations.
Тема отлично работает и даже позволяет вашим приложениям Qt автоматически переключаться между светлым и темным режимами в соответствии с цветовым стилем рабочего стола.
Ubuntu 23.04 и Ubuntu 23.10 включают пакет в системный репозиторий, к сожалению, только для приложений Qt5!
1. Сначала нажмите Ctrl+Alt+T на клавиатуре, чтобы открыть терминал. Когда терминал откроется, выполните команду для установки пакета темы:
sudo apt install qgnomeplatform-qt5
2. Далее также откройте «Файлы», нажмите Ctrl+H, чтобы просмотреть скрытые файлы. Затем отредактируйте файл «.profile» и добавьте в конец новую строку:
export QT_QPA_PLATFORMTHEME='gnome'
Наконец, выйдите из системы и снова войдите, чтобы применить изменения.
После выполнения «Варианта 1» и «Варианта 2» все мои приложения Qt имеют собственные границы окон, хотя qBittorrent на основе Qt6 по-прежнему не очень хорошо вписывается в GNOME.
Приложения Qt в Ubuntu 23.10 после этого руководства
Запустите приложение Qt против Wayland
После выполнения «Варианта 1» ваши приложения Qt будут работать на X11.
Если вам нужно запустить приложение для Wayland, запустите приложение с терминала. Например, запустите kdenlive
с помощью Wayland:
env QT_QPA_PLATFORM=wayland kdenlive
Советы: некоторые приложения могут работать в фоновом режиме в автоматическом режиме. Вам необходимо сначала закрыть его, прежде чем запускать аналогичную команду, описанную выше.
Или отредактируйте файл ярлыка приложения (обычно в разделе /usr/share/appliations
) и настройте среду, изменив значение «Exec».
Например, отредактируйте ярлык приложения для Kdenlive, чтобы оно работало с Wayland:
sudo gnome-text-editor /usr/share/applications/org.kde.kdenlive.desktop