Кодировки в QT, Не работает отображение русских букв |
Здравствуйте, гость ( Вход | Регистрация )
Кодировки в QT, Не работает отображение русских букв |
Litkevich Yuriy |
7.1.2009, 23:27
Сообщение
#21
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
1. app.load(QString("qt_") + locale); на первых порах он тебе не нужен,метода load() не нашлось ни для QApplication, ни для QCoreApplication Что за версия Qt?2. #include "mainwindow.h" - его еще создать это то где бы я разместил твой класс.Ключевой момент: // Устанавливаем кодеки Первый, кодировка локали системы, определяется автоматическиQTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());// без этой кодировки с БД проблема QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr() Второй кодек, кодировка твоего файла с кодом (текстового редактора) метода load() не нашлось ни для QApplication, ни для QCoreApplication Пардон, по опечатка, должно быть так:
|
|
|
molchanoviv |
8.1.2009, 0:18
Сообщение
#22
|
Старейший участник Группа: Сомодератор Сообщений: 597 Регистрация: 18.7.2008 Из: Саратов Пользователь №: 238 Спасибо сказали: 41 раз(а) Репутация: 5 |
я не знаю mysql API обьясни мне пожалуйста что представляет из себя row и result? как я понимаю это какие-то классы. В остальном почти готово
Вроде-бы то что ты хотел(насколько я понял mysql API) class.h
class.cpp
main.cpp
project.pro
ui-шка та-же. Естесственно в системе должен стоять мускул и в кьюте должен быть собран драйвер QMYSQL(если ты собирал Qt сам). |
|
|
Litkevich Yuriy |
8.1.2009, 1:25
Сообщение
#23
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
molchanoviv, ты зря ему такой пример пишешь, используешь Виджет вместо модель/представление.
Теперь код для if(createConnection())
В заголовочник, в объявление класса добавляем:
и в pro-файл добавляем: CONFIG += console чтобы видеть, что сообщает функция qDebug() ----- Забыл, что в дизайнере все сделано В дизайнере заменяем виджет на представление (QTableWidget -> QTableView) и строчка: QTableView *view; //!< табличное представление. не нужна, а нужно в моем примере исправить view = new QTableView; на:view->setModel(model);
|
|
|
Alex69z |
8.1.2009, 1:47
Сообщение
#24
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
1. app.load(QString("qt_") + locale); на первых порах он тебе не нужен,метода load() не нашлось ни для QApplication, ни для QCoreApplication Что за версия Qt?2. #include "mainwindow.h" - его еще создать это то где бы я разместил твой класс.Ключевой момент: // Устанавливаем кодеки Первый, кодировка локали системы, определяется автоматическиQTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());// без этой кодировки с БД проблема QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr() Второй кодек, кодировка твоего файла с кодом (текстового редактора) метода load() не нашлось ни для QApplication, ни для QCoreApplication Пардон, по опечатка, должно быть так:
Версия Qt-4.4.3 Настроил кодеки как Вы показали - результат тот же - русские буквы отображаются иероглифами Latin1 я не знаю 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 в моих кривых руках не желает ОТОБРАЖАТЬ эти данные. Пытаюсь побороть эту проблему - пока безрезультатно. |
|
|
Litkevich Yuriy |
8.1.2009, 1:53
Сообщение
#25
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
как Вы показали лучше на тырусские буквы отображаются иероглифами Тогда, давай с минимума:main.cpp
pro-file
Делай: qmake make |
|
|
Alex69z |
8.1.2009, 2:02
Сообщение
#26
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
Сделал. QLabel не отображается совсем.
|
|
|
Litkevich Yuriy |
8.1.2009, 2:14
Сообщение
#27
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Alex69z |
8.1.2009, 2:28
Сообщение
#28
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
QLabel не отображается совсем. что запускаешь, tst.exe или tstd.exe?при запуске последнего, должна появлятся консоль (если из файлового менеджера) Запускал и то и другое - консоль не появляется, виджет тоже. На свою форму бросил QLabel, задал ей текст - обратно иероглифы. |
|
|
Litkevich Yuriy |
8.1.2009, 2:35
Сообщение
#29
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Alex69z |
8.1.2009, 2:38
Сообщение
#30
|
Студент Группа: Новичок Сообщений: 15 Регистрация: 7.1.2009 Пользователь №: 480 Спасибо сказали: 0 раз(а) Репутация: 0 |
|
|
|
Текстовая версия | Сейчас: 30.11.2024, 1:45 |