Здравствуйте, 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.
Возможны также проблемы с фонтами.