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

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

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Отображение шрифтов в Linux [РЕШЕНО]  (Прочитано 19254 раз)
Zmeishe
Гость
« : Апрель 28, 2008, 09:44 »

По форуму искал, про 75 и 100 dpi знаю - решение никак не найду.

Пробовал на Mandriva 2007 Spring и на CentOS 5.

Вообще интересно для Mandriva 2007 Spring.
KDE 3.5, ярлыки на рабочем столе, Firefox, OpenOffice и другие программы отображают шрифты просто супер.
Тем более, что Mandriva позволяет выставлять нестандартный для Линукса dpi - 96 и 120 и антиальясинг и хинтинг.
Смотрю на всё это и наслаждаюсь. И ЗD кубик крутится вертится.
Никаких Виндовозных шрифтов я туда не ставил.

Запускаю свою Qt4 программу и начинает тошнить - все буковки лесенкой.
Почему программа не может отобразить шрифты также как KDE или приложение должно быть KApplication вместо QApplication или как или что ??

Перепробовал все шрифты, которые видит QDesigner, результата никакого - только лесенка.
« Последнее редактирование: Апрель 29, 2008, 13:52 от Zmeishe » Записан
Zmeishe
Гость
« Ответ #1 : Апрель 28, 2008, 11:04 »

Покопавшись в инете нашёл вот это
http://linux.alexnet.ru/doc_ru/qt-fonts-HOWTO/index.html
Необходимо собрать Qt с ключиком configure -xft и установить переменную окружения QT_XFT в true. Но это всё для Qt-2.3.0

Посмотрел свой configure --help и обнаружил только ключики
-no-fontconfig...Do not compile FontConfig (anti-aliased font) support
-fontconfig........Compile FontConfig support
                       Requires  fontconfig/fontconfig.h and libfontconfig
                       freetype.h and libfreetype
Это оно ?
Как теперь выглядит переменная окружения для Qt 4 вместо QT_XFT ?
Асистант молчит как партизан.

Записан
ритт
Гость
« Ответ #2 : Апрель 28, 2008, 11:54 »

давай скриншотик "лесенки"
кутэ4 самосборная или дистровая? все необходимые пакеты установлены? было бы не лишним увидеть кэш конфигуратора
Записан
Zmeishe
Гость
« Ответ #3 : Апрель 29, 2008, 09:49 »

В линуксе даже иконки у QLable тоже ломаные. А на ярлыки на рабочем столе приятно смотреть. Шрифт в окне и KDE один и тот же. Только моё окно не понимает, что у KDE 120 dpi.
Qt - самосборная
Необходимые пакеты - это какие. По крайней мере при сборке ни разу ни на что не ругнулся.
Кеш конфигуратора это в где?
« Последнее редактирование: Апрель 29, 2008, 09:55 от Zmeishe » Записан
Zmeishe
Гость
« Ответ #4 : Апрель 29, 2008, 10:44 »

Вот тут чего-то похожее. Буду разбираться.
http://prog.org.ru/forum/index.php/topic,6986.msg34270.html#msg34270
Записан
ритт
Гость
« Ответ #5 : Апрель 29, 2008, 13:14 »

покажи хотя бы что пишет конфигура в "итого"...как то:
Цитировать
XShape support ...... yes
Xinerama support .... yes
Записан
Zmeishe
Гость
« Ответ #6 : Апрель 29, 2008, 13:50 »

Вот только-что закончил сборку Qt заново. Всё получилось отлично.
Теперь невозможно отличить где прога крутится в Линуксе или Виндовозе.


Суть действительно в сборке.
Т.е. ключи
-fontconfig
-xrender
-xrandr
-xfixes
-xcursor
-xinerama
-xshape
включаются Qt конфигуратором на основе анализа системы, при наличии соотвествующих библиотек и соответствующих им develop пакетов.

Для того, чтобы у Qt программ в Линуксе не было проблем с отображением шрифтов и масштабированием иконок, после выполнения configure
в файле .qmake.cache должны быть такие записи
QMAKE_LIBS_X11 = -lfreetype -lfontconfig $$QMAKE_LIBS_X11
QMAKE_LIBS_X11 = -lXinerama $$QMAKE_LIBS_X11
QMAKE_LIBS_X11 = -lXcursor $$QMAKE_LIBS_X11
QMAKE_LIBS_X11 = -lXfixes $$QMAKE_LIBS_X11
QMAKE_LIBS_X11 = -lXrandr $$QMAKE_LIBS_X11
QMAKE_LIBS_X11 = -lXrender $$QMAKE_LIBS_X11

Где должны быть вот такие записи
XShape support ...... yes
Xinerama support .... yes
Xcursor support ..... yes
Xfixes support ...... yes
Xrandr support ...... yes
Xrender support ..... yes
FontConfig support .. yes
я у себя не нашёл.

Подозреваю, что в этом решение ещё одной проблемы.
Когда я скомпилил прогу на одном Линуксе, а потом скопировал на другой (FedoraCore) - прога отказалась даже стартовать. Чего мне только не советовали: поставить qt библиотеки из репозитария FedoraCore, пересобрать Qt статически на компьютере источнике. Ничего не помогало, пока на Fedore не собрал Qt из исходников, а затем сами программы.

Сейчас проверил - действительно на одном компе Линукс поставлен весь полностью и Qt там собрана с fontconfig, а на другом Линукс поставлен выборочно и Qt собран без fontconfig.

PS
Тока непонятно как KDE и OpenOffice сглаживали шрифты - они ведь тоже на Qt сделаны ?
« Последнее редактирование: Апрель 29, 2008, 16:07 от Zmeishe » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #7 : Апрель 29, 2008, 14:37 »

текущий KDE на QT3 работает, а вот KDE4 еще немногие рискуют совать в дистриб.
Записан

Юра.
ритт
Гость
« Ответ #8 : Апрель 29, 2008, 15:45 »

вот и замечательно! приложи для полноты картины скриншотик того же диалога, что получился в итоге...
не понял только как Xinerama, Xcursor относятся к сглаживанию шрифтов/иконок?

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

как насчёт создать доп.раздел, куда выносить (дублировать/перемещать) подобные ветки чтобы в светлом будущем накопипастить в вику? - это в первую очередь одминам и модерам адресовано...
Записан
Zmeishe
Гость
« Ответ #9 : Апрель 29, 2008, 16:11 »

Я сам не знаю как Xinerama, Xcursor влияют на шрифты, но поскольку они относятся к X11, то на графику наверняка влияют. Иконки в диалоге тоже были ступеньками, а теперь нет.

>>как насчёт создать доп.раздел, куда выносить (дублировать...

Лучше дублировать.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Апрель 29, 2008, 16:17 »

А вот на счет OpenOffice вы зря.... Писан он с использованием GTK, а совсем не кути. И это плохо.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Zmeishe
Гость
« Ответ #11 : Апрель 29, 2008, 16:31 »

Ага, вот почему у егойного API — ООП такой невменяемый. (я все мозги измучил)
Значит мне насвистели по то, что он на Qt.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Апрель 29, 2008, 17:01 »

На счет OOo+Qt - это желание многих, но оно не осуществимо. Грустный
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #13 : Апрель 29, 2008, 18:09 »

Zmeishe, я вот так и непонял, насчет решения проблемы, теперь если твою софтину взять скомпиленую тобой, и запустить на любом линухе, все будет путем?
Qt'я на линухе надо с нужными ключами собирать только на той машине где софтину компилишь?
Записан

Юра.
Zmeishe
Гость
« Ответ #14 : Апрель 30, 2008, 07:59 »

Я имею ввиду (предполагаю) следующее:
Если на исходной машине установлены libfontconfig, libfreetype и Qt собрана с ключиками -fontconfig и пр. и на машине адресате тоже установлены libfontconfig, libfreetype, то вполне возможно там Qt собирать нет необходимости - достаточно перенести туда QtCore4, QtGui4 и т.д. и свою прогу пересобирать там из исходников не придёться.

А вот если на машине адресате libfontconfig, libfreetype НЕ установлены, то думаю у QtGui4 будет "срывать башню". У меня софтина там вообще не стартовала. Я даже не помню сообщения об ошибке (если оно вообще было). Даже проверка ldd ничего не показала. Я тогда, так и не понял причины. А когда собрал там Qt и свою прогу увидел лесенку в шрифтах и иконках.

Отсюда и сделал своё предположение т.к. библиотеки Qt из репозитария Fedor`ы наверняка собраны без libfontconfig, libfreetype.
Просто надо проверить это предположение т.к. оно достаточно логично.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


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