crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Русские сообщения в Qt-шных стандартных диалоговых окнах, :::::::::::::::::
AD
  опции профиля:
сообщение 4.3.2008, 20:53
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Как заставить диалоговые окна типа QErrorMessage и т.п. воспринимать сообщения на русском языке?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 4.3.2008, 22:27
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


#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 (без заголовка, иначе компилер будет ругатся на начало файла)

Сообщение отредактировал Litkevich Yuriy - 4.3.2008, 22:29
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 5.3.2008, 13:20
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Цитата(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
Сообщение #4


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


ещЁ вариант:
QString::fromLocal8Bit("Великий и могугий");
в любом месте (наверно) где требуется QString.Может есть минусы этого способа?Знает кто?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 13.3.2008, 21:47
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


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

всякий раз писать длинно писать длинно прийдется
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
rich
  опции профиля:
сообщение 13.3.2008, 21:56
Сообщение #6


Участник
**

Группа: Участник
Сообщений: 123
Регистрация: 1.3.2008
Пользователь №: 109

Спасибо сказали: 6 раз(а)




Репутация:   0  


:rolleyes: :rolleyes: это в плане удобства
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
AD
  опции профиля:
сообщение 14.3.2008, 12:23
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 2003
Регистрация: 4.2.2008
Из: S-Petersburg
Пользователь №: 84

Спасибо сказали: 70 раз(а)




Репутация:   17  


Напишу вопрос сюда, чтобы не создавать новую тему. Как перевести в char* из QString, чтобы дебаггер Visual Studio нормально отобразил строчку char*?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ViGOur
  опции профиля:
сообщение 14.3.2008, 14:12
Сообщение #8


Мастер
******

Группа: Модератор
Сообщений: 3296
Регистрация: 9.10.2007
Из: Москва
Пользователь №: 4

Спасибо сказали: 231 раз(а)




Репутация:   40  


С помощью qPrintable, так:
QString sz = "Text";
const char *p = qPrintable( sz);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 19:00