Информация об изменениях

Сообщение Ненавижу Windows-1251 от 25.06.2015 13:18

Изменено 25.06.2015 13:24 omgOnoz

Здравствуйте, LaptevVV, Вы писали:

  Скрытый текст
LVV>Где почитать, как QLabel на форму вывести на русском?
LVV>Когда-то я брал книжку Земскова по Qt 4 — и егошные примеры все прекрасно работали.
LVV>Сегодня после долгого перерыва имеем:
LVV>- Windows 7
LVV>- Qt 5.4.2 — бесплатная
LVV>- QtCretor 3.4.1 c MinGW 4.9.1
LVV>В Creatore в редакторе установлена по умолчанию кодировка Windows-1251.
LVV>Так осталось с давних времен, чтобы не перебивать комментарии.

LVV>Делаю простую форму из QDialog.

LVV>В main() пишу:
LVV>
LVV>#include "dialog.h"
LVV>#include <QApplication>

LVV>int main(int argc, char *argv[])
LVV>{
LVV>    QApplication a(argc, argv);

LVV>    // -- делаем русскую кодировку --
LVV>        QTextCodec *codec = QTextCodec::codecForName("CP1251");
LVV>        QTextCodec::setCodecForLocale(codec);                // -- тут в прежней проге стояло setCodecForTr(codec)

LVV>        QFont font("Courier", 10, QFont::Bold);
LVV>        QApplication::setFont(font);

LVV>    Dialog w;
LVV>    w.setFont(font);
LVV>    w.setWindowTitle(QObject::tr("Поиск перколяционного кластера"));

LVV>    w.show();

LVV>    return a.exec();
LVV>}
LVV>

LVV>Проблема:
LVV>а) в неправильной кодировке ?
LVV>б) в неправильных вызовах ?
LVV>Скорее всего — последнее.
LVV>Где прочитать, как правильно?
LVV>В Шлее все примеры на английском, а глава о локализации — про глобальные проблемы перевода всех строк в приложении.
LVV>Справка в QtCreator — примера подобного не обнаружил.


Во первых используйте нормальную кодировку UTF-8!

Виндовые кодировки должны умереть! На английской Венде вечный трах в мозг с 1251 — нормального способа эту проблему решить нет!

Если текст вшит в программу — то все пропало, если внешние файлы — спасает перекодеровка текста в UTF-8.
Ненавижу Windows-1251
Здравствуйте, LaptevVV, Вы писали:

  Скрытый текст
LVV>Где почитать, как QLabel на форму вывести на русском?
LVV>Когда-то я брал книжку Земскова по Qt 4 — и егошные примеры все прекрасно работали.
LVV>Сегодня после долгого перерыва имеем:
LVV>- Windows 7
LVV>- Qt 5.4.2 — бесплатная
LVV>- QtCretor 3.4.1 c MinGW 4.9.1
LVV>В Creatore в редакторе установлена по умолчанию кодировка Windows-1251.
LVV>Так осталось с давних времен, чтобы не перебивать комментарии.

LVV>Делаю простую форму из QDialog.

LVV>В main() пишу:
LVV>
LVV>#include "dialog.h"
LVV>#include <QApplication>

LVV>int main(int argc, char *argv[])
LVV>{
LVV>    QApplication a(argc, argv);

LVV>    // -- делаем русскую кодировку --
LVV>        QTextCodec *codec = QTextCodec::codecForName("CP1251");
LVV>        QTextCodec::setCodecForLocale(codec);                // -- тут в прежней проге стояло setCodecForTr(codec)

LVV>        QFont font("Courier", 10, QFont::Bold);
LVV>        QApplication::setFont(font);

LVV>    Dialog w;
LVV>    w.setFont(font);
LVV>    w.setWindowTitle(QObject::tr("Поиск перколяционного кластера"));

LVV>    w.show();

LVV>    return a.exec();
LVV>}
LVV>

LVV>Проблема:
LVV>а) в неправильной кодировке ?
LVV>б) в неправильных вызовах ?
LVV>Скорее всего — последнее.
LVV>Где прочитать, как правильно?
LVV>В Шлее все примеры на английском, а глава о локализации — про глобальные проблемы перевода всех строк в приложении.
LVV>Справка в QtCreator — примера подобного не обнаружил.


Во первых используйте нормальную кодировку UTF-8!

Виндовые кодировки должны умереть! На английской Венде вечный трах в мозг с 1251 — нормального способа эту проблему решить нет!

Если текст вшит в программу — то все пропало, если внешние файлы — спасает перекодеровка текста в UTF-8.

Возможны также проблемы с фонтами.