crossplatform.ru

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

> Кодировки в QT, Не работает отображение русских букв
Гость_Alex_*
сообщение 7.1.2009, 19:39
Сообщение #1





Гости








    


Кодек назначаю

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));

и при сборке имею

main.cpp:15: ошибка: неполный тип ‘QTextCodec’ использован во вложенном спецификаторе имени

Без кодека никакие русские буквы в кодировке UTF-8 в QLineEdit на отображаются, только барабер какой-то.

Буду признателен за помощь - Qt только осваиваю.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 7.1.2009, 23:27
Сообщение #2


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

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

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




Репутация:   94  


Цитата(Alex69z @ 8.1.2009, 2:16) *
1. app.load(QString("qt_") + locale);
на первых порах он тебе не нужен,
Цитата(Alex69z @ 8.1.2009, 2:16) *
метода load() не нашлось ни для QApplication, ни для QCoreApplication
Что за версия Qt?

Цитата(Alex69z @ 8.1.2009, 2:16) *
2. #include "mainwindow.h" - его еще создать
это то где бы я разместил твой класс.

Ключевой момент:

Цитата(Litkevich Yuriy @ 8.1.2009, 0:50) *
// Устанавливаем кодеки
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());// без этой кодировки с БД проблема
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
Первый, кодировка локали системы, определяется автоматически
Второй кодек, кодировка твоего файла с кодом (текстового редактора)

Цитата(Litkevich Yuriy @ 8.1.2009, 2:22) *
метода load() не нашлось ни для QApplication, ни для QCoreApplication
Пардон, по опечатка, должно быть так:
qttr->load(QString("qt_") + locale); // загрузка файла qt_*.qm
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Alex69z
  опции профиля:
сообщение 8.1.2009, 1:47
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 7.1.2009
Пользователь №: 480

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




Репутация:   0  


Цитата(Litkevich Yuriy @ 7.1.2009, 23:27) *
Цитата(Alex69z @ 8.1.2009, 2:16) *
1. app.load(QString("qt_") + locale);
на первых порах он тебе не нужен,
Цитата(Alex69z @ 8.1.2009, 2:16) *
метода load() не нашлось ни для QApplication, ни для QCoreApplication
Что за версия Qt?

Цитата(Alex69z @ 8.1.2009, 2:16) *
2. #include "mainwindow.h" - его еще создать
это то где бы я разместил твой класс.

Ключевой момент:

Цитата(Litkevich Yuriy @ 8.1.2009, 0:50) *
// Устанавливаем кодеки
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());// без этой кодировки с БД проблема
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
Первый, кодировка локали системы, определяется автоматически
Второй кодек, кодировка твоего файла с кодом (текстового редактора)

Цитата(Litkevich Yuriy @ 8.1.2009, 2:22) *
метода load() не нашлось ни для QApplication, ни для QCoreApplication
Пардон, по опечатка, должно быть так:
qttr->load(QString("qt_") + locale); // загрузка файла qt_*.qm



Версия Qt-4.4.3
Настроил кодеки как Вы показали - результат тот же - русские буквы отображаются иероглифами Latin1


Цитата(molchanoviv @ 8.1.2009, 0:18) *
я не знаю mysql API обьясни мне пожалуйста что представляет из себя row и result? как я понимаю это какие-то классы. В остальном почти готово


MYSQL_RES * Result - определяется в mysql.h как typedef srtucut {...} MYSQL_RES. Элемент MySQL API, предназначенный для хранения результата запроса.
MYSQL_ROW Row - строка в результате (курсоре данных). Определяется как typedef MYSQL_ROW char ** в mysql.h.

Желание использовать MySQL API напрямую исходит от того, что только он (API) позволяет манипулировать всей MySQL-системой без посредников. И к тому же он прост, понятен и отменно документирован. Работа через SQL-движок Qt похожа на ODBC-драйвер как мне кажется. По большому счету нет разницы, каким образом добираться до данных. Вопрос в том, что Qt в моих кривых руках не желает ОТОБРАЖАТЬ эти данные. Пытаюсь побороть эту проблему - пока безрезультатно.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Alex   Кодировки в QT   7.1.2009, 19:39
- - void*   а чуть больше кода можешь показать?   7.1.2009, 19:45
- - Alex69z   int main(int argc, char * argv[], char * env[]){ Q...   7.1.2009, 19:51
- - molchanoviv   А класс? Класс покажи. А QLineEdit как использует...   7.1.2009, 21:02
- - Alex69z   QLineEdit используется как элемент формы MyWidget....   7.1.2009, 21:24
- - molchanoviv   ЦитатаПосле установки Qt все ее диалоги, где есть ...   7.1.2009, 21:27
- - Alex69z   Не все. Только русскоязычные. Все, что латинницей ...   7.1.2009, 21:34
- - molchanoviv   А код то покажешь? И все-таки проверь кодировку ис...   7.1.2009, 21:36
- - void*   в никсах исходники легко можно конвертнуть в нужну...   7.1.2009, 21:45
- - Litkevich Yuriy   Типовой main.cpp: /*! \file main.cpp ...   7.1.2009, 21:50
- - Alex69z   #include "ui_Form.h" #include <mysql.h...   7.1.2009, 22:26
- - Litkevich Yuriy   Alex69z, что это за каша? Alex69z, опиши к чему э...   7.1.2009, 22:51
- - molchanoviv   Лучше разносить описание класса, и его реализацию ...   7.1.2009, 22:56
- - Alex69z   Для умных людей это может выглядеть как "каша...   7.1.2009, 23:02
- - molchanoviv   Выложи ui-шку я тебе свояю небольшой код. Сравнишь...   7.1.2009, 23:05
|- - Alex69z   Цитата(molchanoviv @ 7.1.2009, 23:05) Выл...   7.1.2009, 23:10
- - Alex69z   <ui version="4.0" > <class...   7.1.2009, 23:08
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 2:02) однако э...   7.1.2009, 23:08
|- - Alex69z   С Q_OBJECT уже попробовал - получил пару шишек. С...   7.1.2009, 23:16
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 2:10) А вот гд...   7.1.2009, 23:12
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 2:16) 1. app.l...   7.1.2009, 23:27
|- - Alex69z   Цитата(Litkevich Yuriy @ 7.1.2009, 23:27)...   8.1.2009, 1:47
- - molchanoviv   я не знаю mysql API обьясни мне пожалуйста что пре...   8.1.2009, 0:18
- - Litkevich Yuriy   molchanoviv, ты зря ему такой пример пишешь, испол...   8.1.2009, 1:25
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 4:38) как Вы п...   8.1.2009, 1:53
- - Alex69z   Сделал. QLabel не отображается совсем.   8.1.2009, 2:02
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 5:02) QLabel н...   8.1.2009, 2:14
|- - Alex69z   Цитата(Litkevich Yuriy @ 8.1.2009, 2:14) ...   8.1.2009, 2:28
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 5:28) На свою ...   8.1.2009, 2:35
|- - Alex69z   Цитата(Litkevich Yuriy @ 8.1.2009, 2:35) ...   8.1.2009, 2:38
- - Litkevich Yuriy   Цитата(Alex69z @ 8.1.2009, 5:38) обираю ч...   8.1.2009, 3:10
|- - Alex69z   Цитата(Litkevich Yuriy @ 8.1.2009, 3:10) ...   8.1.2009, 3:23
- - molchanoviv   Цитата(Litkevich Yuriy @ 8.1.2009, 1:25) ...   8.1.2009, 10:12
|- - Alex69z   Цитата(molchanoviv @ 8.1.2009, 10:12) А с...   8.1.2009, 14:56
- - Litkevich Yuriy   molchanoviv, системная локаль учитывается: Цитата(...   8.1.2009, 16:08
- - Alex69z   Огромное спасибо за помощь. Вы отзывчивые и добрые...   8.1.2009, 20:06
- - molchanoviv   Да незачто, обращайся. На то он и форум, чтобы пом...   8.1.2009, 20:09


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


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




RSS Текстовая версия Сейчас: 1.12.2024, 23:14