Русские буквы в Qt приложении (Не отображаются -()

Kubuntu, Xubuntu и другие

Модератор: Модераторы разделов

BamaBlu
Сообщения: 6

Русские буквы в Qt приложении

Сообщение BamaBlu »

Доброго времени суток, обращаюсь к вам с такой проблемой.
В Qt приложении после сборки его под убунтой не отображаются русские буквы.
Сейчас так - Изображение
А должно быть как-то вот так -Изображение
Грешил на шрифты в настройках системы, но там все в порядке. Qtconfig же по каким-то причинам не настраивает отдельно параметры отображения для Qt приложений, а берет системные.
Установка QTextCodec в приложении тоже не помогает.
Подскажите куда копать.

Версия Qt - 4.7.0 b.2.
OS - Ubuntu 10.04
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: Русские буквы в Qt приложении

Сообщение lastpriot »

qtconfig-qt4
проверьте наличие конфига настройки qt4 (пользовательский хранится по дефолту в $HOME/.config/Trolltech.conf)
Спасибо сказали:
BamaBlu
Сообщения: 6

Re: Русские буквы в Qt приложении

Сообщение BamaBlu »

lastpriot писал(а):
11.08.2010 01:03
qtconfig-qt4
проверьте наличие конфига настройки qt4 (пользовательский хранится по дефолту в $HOME/.config/Trolltech.conf)

Присутствует.
Спасибо сказали:
Аватара пользователя
lastpriot
Сообщения: 218
ОС: FreeBSD

Re: Русские буквы в Qt приложении

Сообщение lastpriot »

с помощью ldd проверьте с каким QT линковано ваше приложение, очень похоже на QT3, ихмо
Спасибо сказали:
BamaBlu
Сообщения: 6

Re: Русские буквы в Qt приложении

Сообщение BamaBlu »

lastpriot писал(а):
11.08.2010 14:19
с помощью ldd проверьте с каким QT линковано ваше приложение, очень похоже на QT3, ихмо

Слинковано правильно было.
Посоветовали поставить Qt из пакета, до этого был собранный из исходников, поставил SDK с версией 4.6.2 - помогло. В чем причина, в версии или еще в чем, не выяснял, т.к. собирать опять Qt для проверки только откровенно лень.
Вопрос решенным считаю я.
Спасибо сказали:
Аватара пользователя
Denjs
Сообщения: 1685
ОС: SuSe 10.2

Re: Русские буквы в Qt приложении

Сообщение Denjs »

В исходниках не ковырялись? Кодировка исходников совпадает с системной кодировкой по умолчанию?

Думается мне что ваши исходники имеют отличную от системной кодировку.
Т.е. например вы писали под Suse где локаль UTF-ная, а собираете под будунтой... где какая локаль?

В общем вы ваш "Установка QTextCodec в приложении тоже не помогает" как именно делаете?

Я у себя делаю так в каждом классе где мне надо пользовать русские буквы:

глобальные переменные:

Код: Выделить всё

QTextCodec *defaultCodec = QTextCodec::codecForName("UTF-8"); //кодировка моих исходников - UTF-8
QTextCodec *defaultLocaleCodec = defaultCodec;//позже может быть переопределено...


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

Код: Выделить всё

    QTextCodec::setCodecForTr(defaultCodec);
    QTextCodec::setCodecForCStrings(defaultCodec);


    #if defined (Q_OS_WIN32)    // для виндовой "консоли-локали" всегда так
        defaultLocaleCodec = QTextCodec::codecForName("IBM 866");//это ля консоли
    #endif
    QTextCodec::setCodecForLocale(defaultLocaleCodec);


У меня собирается под виндой и линуксом с нормальными русскими буквами везде. QT 4.7 (релиз, а не бета - Qt SDK by Nokia v2010.04 (open source))
QDroid - Среда исполнения и фреймворк для QtScript.
OTPD - Открытые драйвера промышленных принтеров чеков и этикеток (кроссплатформенная подсистема печати).
Спасибо сказали:
BamaBlu
Сообщения: 6

Re: Русские буквы в Qt приложении

Сообщение BamaBlu »

Denjs
Кодеки настраивал один раз, примерно так же, - в мейне после создания объекта QApplication. Встречал именно такие советы. В каждом классе...это было бы странно с учетом статических методов. Хотя утверждать не буду, т.к. не помогло.
Набирал действительно под другим линуксом.
Насчет кодировок - судя по внешнему виду тут дело в чем-то другом, картина больно уж не характерная, но могу и ошибаться.
Проверить теперь предположение проблемно, т.к. все починил, а ломать опять долго)
Спасибо сказали:
Аватара пользователя
ТВЭЛ
Сообщения: 132
ОС: основана на SlackWare

Re: Русские буквы в Qt приложении

Сообщение ТВЭЛ »

У меня почти в точности такая же ерунда была с Google Earth.
Приходилось запускать через LANG=c.
Время не ждет.
Спасибо сказали: