Russian Qt Forum
Апрель 25, 2024, 22:41 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: (РЕШЕНО) Странности со шрифтами и темой GUI в "английском" Linux  (Прочитано 5392 раз)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« : Ноябрь 11, 2015, 15:10 »

Отлаживаю приложение в Linux-64, который изначально установлен, как "русский", и в Linux-32, который изначально установлен, как "английский". То есть, в первом случае системные сообщения и элементы управления появляются по-русски, во втором по-английски. Обе версии Linux одинаковые - Kubuntu 14.04. В "русском" Linux всё хорошо, в приложении используются заданные в настройках ОС шрифты, все буквы как надо. В "английском" какая-то странность с использованием шрифтов, но только в отлаживаемом приложении. В нём (и только в нём - в остальных нормально) используются не системные шрифты, а не понятно какие - в интерфейсе приложения английские тексты написаны шрифтом с серифами (хотя в системных настройках заданы шрифты без серифов), а изображения русских букв отсутствуют. То есть, русские тексты просто пустые, хотя они присутствуют с правильной кодировкой (это видно по некоторым особенностям поведения приложения). Кроме этого, почему-то у приложения в Linux-32 интерфейс не использует системный скин, хотя в Linux-64 приложение одето в системный скин как положено. То есть, кнопки и другие элементы управления приложения в Linux-32 "дефолтные", без скинов, хотя в системных настройках установлен стиль Plastique с одетыми кнопками. Даже не вполне понятно куда копать - в Windows и Linux-64 всё хорошо по-умолчанию, а тут чудеса какие-то. Пишу в ветку про GUI, поскольку проблема явно в использовании системных ресурсов - почему-то приложение их не использует, а что использует, не понятно.

PS: на всякий случай добавил в Linux-32 русскую локаль - не повлияло. Я и не ожидал, но мало ли.

PPS: смена темы приложений починила вид приложения - кнопки и прочее стали одеты в скины. Но как-то криво - там у меня иконки с альфа-каналом, так они в дизайнере на кнопках нормально видны, а в собранном приложении с фоном на месте прозрачности. На некоторых кнопках почему-то с черным.

PPPS: нашел в сети похожие проблемы - кто-то вылечил пересборкой Qt. Но я отключал только сборку примеров, демо и поддержку Qt3.

PPPPS: установил qt4-qtconfig, изменил там настройки - не помогло.
« Последнее редактирование: Ноябрь 12, 2015, 18:31 от Гурман » Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #1 : Ноябрь 11, 2015, 21:57 »

Источник проблемы найден, но как исправить пока не ясно - при установке в "английский" Linux Qt решил, что русские буквы будут не нужны (ну и дурак...), и для пользователя который его собирал из исходников, установил для приложений по-умолчанию шрифт без русских букв Bitstream Charter. По идее, это должно исправляться с помощью утилиты <каталог_Qt>/qtconfig, в ней есть пара шрифтов с русскими буквами. Но при их выборе и сохранении настройки всё равно остается Bitstream Charter. То есть, снова qtconfig запускаешь - там опять Bitstream. Я руками вбил название шрифта с русскими буквами в ~/.config/Trolltech.conf вместо этого гребанного Bitstream (оно встречается один раз) - не помогло. Еще где-то содержится имя используемого шрифта?

Нихрена не понятно - как нормально заставить Qt использовать для приложений системные шрифты? Ну разве только кроме переустановки - по идее должно встать нормально, поскольку в системе теперь есть русская локаль. Но это же должно настройками делаться, а не переустановкой - почему qtconfig не работает?

Запускал sudo qtconfig - в списке появляются системные шрифты, но любой выбранный тоже не сохраняется.
Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #2 : Ноябрь 12, 2015, 11:51 »

что такое "английский" linux ?
что такое установка qt ? копирование ?
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #3 : Ноябрь 12, 2015, 12:28 »

Задай через QApplication::setFont().
Записан

Qt 5.11/4.8.7 (X11/Win)
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #4 : Ноябрь 12, 2015, 14:09 »

что такое "английский" linux ?
у которого при установке выбран английский язык
что такое установка qt ? копирование ?
нет, конечно - это сборка из исходников
Записан

2^7-1 == 127, задумайтесь...
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #5 : Ноябрь 12, 2015, 14:10 »

Задай через QApplication::setFont().
я думаю об этом, но тогда надо фонты в ресурсы включать, не ясно как это сделать мультиплатформенно
Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #6 : Ноябрь 12, 2015, 16:32 »

что такое "английский" linux ?
у которого при установке выбран английский язык

а зачем так делать, если предполагается работа с русскими шрифтами  ?

чтобы был Plastique - его надо собрать отдельно, из https://gitorious.org/qt/qtstyleplugins
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #7 : Ноябрь 12, 2015, 18:31 »

что такое "английский" linux ?
у которого при установке выбран английский язык

а зачем так делать, если предполагается работа с русскими шрифтами  ?

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

Я так сделал, поскольку у меня в личной практике были неоднократные случаи использования русскоязычного ПО на англоязычных ОС. Чтобы проработать и такой вариант, если вдруг встретится.

Проблема решена! После установки libfontconfig1-dev, libfreetytpe6-dev, libxrender-dev и пересборки Qt с добавлением ключей -fontconfig и -xrender приложение заработало полностью нормально. В интерфейсе используются выбранные в настройках ОС шрифты с русскими буквами, и все кнопки стали нормально рисоваться с правильными иконками на них и правильными скинами.

То есть, русскую локаль можно было бы и не ставить - в ОС по умолчанию не было libfontconfig1-dev и libfreetytpe6-dev. Не совсем понятно, почему Qt их не потребовал, поскольку вроде бы ключ -fontconfig используется по-умолчанию. А проблемы с иконками на кнопках починились из-за использования libxrender-dev. Тоже по идее по-умолчанию должно бы ставиться при установке собранного Qt, равно как и ключ -xrender должен быть умолчательным.

/* начиная чесать в затылке - а ведь надо будет потом делать .deb и .rpm с бинарником, и чтобы они правильно везде ставились... оххх.... */

ЗЫ: по-хорошему эту тему надо перенести в "Установку и настройку", так как проблема не в приложении, а в настройках ОС и используемого Qt.
« Последнее редактирование: Ноябрь 12, 2015, 18:41 от Гурман » Записан

2^7-1 == 127, задумайтесь...
qate
Супер
******
Offline Offline

Сообщений: 1175


Просмотр профиля
« Ответ #8 : Ноябрь 13, 2015, 09:27 »

в конце своей работы скрипт configure пишет что он будет, а что не будет собирать
т.е. он не нашел те dev пакеты и не стал собирать что просили
а если смысла собирать самому qt нет, то можно и из репов поставить qt
Записан
Гурман
Гуру общения
******
Offline Offline

Сообщений: 1442

Qt 2.2, 3.3, 4.5, 4,7, 4.8, 5.3, 5.6, 5.9, 5.12


Просмотр профиля
« Ответ #9 : Ноябрь 13, 2015, 12:33 »

а если смысла собирать самому qt нет, то можно и из репов поставить qt

мне 4.7.0 нужен

странно еще  другое - в той же версии Kubuntu 14.04 но x64 всё есть , приложение без фокусов выглядит как следует, правда она работает на реальной машине, а x86 в виртуальной
Записан

2^7-1 == 127, задумайтесь...
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.093 секунд. Запросов: 22.