Собрался таки с духом перейти на Qt 5.0.2 c Qt 4.8.
Стал пересобирать проект (большой), напоролся на несколько костылей, но они решились быстро. Но выяснилась проблема - как выяснилось, с 5-ой версии больше не будут поддерживаться исходники в любой иной кодировке, кроме как в юникоде (тут написано -
http://www.prog.org.ru/index.php?topic=24187.msg172513#msg172513 ). А мне это как-то влом - перегонять кучу файлов (исходники в Win-1251) в юникод, а потом еще маяться с обратным перекодированием (пользуюсь старым текстовым редактором, он UTF-8 плохо переваривает). Или пользоваться лингвистом (проект чисто для русскоязычных). Решение проблемы собственно такое:
Где-то объявляем глобальную переменную и функцию для перекодирования:
extern QTextCodec *_codec; //! кодек для программирования
QString FTr(QByteArray __rustext); //! перевод в UTF-8 для программирования
Далее реализация:
QTextCodec *_codec=QTextCodec::codecForName("Windows-1251");
//-----------------------------------------------------
//! преобразование Windows-1251 в UNICODE (UTF-8)
//-----------------------------------------------------
QString FTr(QByteArray __rustext){
return _codec->toUnicode(__rustext);
}
Ну и далее по всему текстку вместо использования Qt-шной
tr() делаем нечто такое:
QString _text=FTr("Мой текст на русском");
QString _text2=FTr(QByteArray("Текст на русском с переменными ").append(_peremennaja).append(" еще текст"));
QMessageBox::warning(0, FTr("Ошибка"),_text+FTr("Не могу создать файл"));
Может быть, кому-то пригодится