Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Русские сообщения в Qt-шных стандартных диалоговых окнах

Автор: AD22 4.3.2008, 20:53

Как заставить диалоговые окна типа QErrorMessage и т.п. воспринимать сообщения на русском языке?

Автор: Litkevich Yuriy 4.3.2008, 22:27

#include <QTextCodec>
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); // Для строковых констант
  QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
.
.
.
}

в каком либо файле проекта:
QMessageBox::critical(0, "Открыл БД", /* Строковая константа */
qApp->tr("Установлено соединение.\n" /* функция перевода */
         "Click Cancel to exit."), QMessageBox::Cancel);


Разумеется я пишу код в редакторе поддерживающем UTF-8 (без заголовка, иначе компилер будет ругатся на начало файла)

Автор: AD22 5.3.2008, 13:20

Цитата(Litkevich Yuriy @ 4.3.2008, 22:27) *
#include <QTextCodec>
int main(int argc, char *argv[])
{
  QApplication app(argc, argv);
  QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); // Для строковых констант
  QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
.
.
.
}

в каком либо файле проекта:
QMessageBox::critical(0, "Открыл БД", /* Строковая константа */
qApp->tr("Установлено соединение.\n" /* функция перевода */
         "Click Cancel to exit."), QMessageBox::Cancel);


Разумеется я пишу код в редакторе поддерживающем UTF-8 (без заголовка, иначе компилер будет ругатся на начало файла)

Спасибо! Только мне пришлось написать кодировку Windows-1251, чтобы отобразился русский, а не квадраты! :)

Автор: rich 13.3.2008, 21:31

ещЁ вариант:
QString::fromLocal8Bit("Великий и могугий");
в любом месте (наверно) где требуется QString.Может есть минусы этого способа?Знает кто?

Автор: Litkevich Yuriy 13.3.2008, 21:47

Цитата(rich @ 14.3.2008, 0:31) *
Может есть минусы этого способа?

всякий раз писать длинно писать длинно прийдется

Автор: rich 13.3.2008, 21:56

:rolleyes: :rolleyes: это в плане удобства

Автор: AD 14.3.2008, 12:23

Напишу вопрос сюда, чтобы не создавать новую тему. Как перевести в char* из QString, чтобы дебаггер Visual Studio нормально отобразил строчку char*?

Автор: ViGOur 14.3.2008, 14:12

С помощью http://crossplatform.ru/documentation/qtdoc4.3/qtglobal.php#qPrintable, так:

QString sz = "Text";
const char *p = qPrintable( sz);

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)