crossplatform.ru

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

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





Гости








    


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

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

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

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

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

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


Старейший участник
****

Группа: Сомодератор
Сообщений: 597
Регистрация: 18.7.2008
Из: Саратов
Пользователь №: 238

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




Репутация:   5  


я не знаю mysql API обьясни мне пожалуйста что представляет из себя row и result? как я понимаю это какие-то классы. В остальном почти готово

Вроде-бы то что ты хотел(насколько я понял mysql API)

class.h
#include "ui_Form.h"    //Подключаем ui-шку
#include <QtGui>    //Подключаем модуль работы с GUI
#include <QtSql>    //Подключаем модуль работы с SQL

class MyWidget : public QWidget, public Ui::Form    //Делаем класс наследником от ui
{
    public:
        MyWidget(QWidget * parent = 0);    
        ~MyWidget();
    private:
        QSqlDatabase database;            //Создаем обьект базы данных.
        bool createConnection();         //Булевая функция создающая подключение к БД
};


class.cpp
#include "class.h"

MyWidget::MyWidget(QWidget * parent):QWidget(parent)
{
    setupUi(this);
    if(createConnection())
    {
        QSqlQuery *sql = new QSqlQuery;
        sql->prepare("select * from table_1");
        sql->exec();
        if(sql->lastError().type() != QSqlError::NoError)
        qDebug()<<sql->lastError().text();
        QSqlRecord rec = sql->record();
        int i=0;
        tableWidget->setColumnCount(sql->size());
        tableWidget->setRowCount(rec.count());
        while(sql->next())
        {
            for(int j=0; j<rec.count(); j++)
            {
                qDebug()<<sql->value(i).toString();
                QTableWidgetItem * newItem = new QTableWidgetItem(sql->value(i).toString());
                tableWidget->setItem(j, i, newItem);
            }
            ++i;
        }
    }
    connect(pushButton,SIGNAL(clicked()),qApp,SLOT(quit()));

}

MyWidget::~MyWidget()
{
    
}

bool MyWidget::createConnection()
{
    database = QSqlDatabase::addDatabase("QMYSQL");    //используем драйвер QMYSQL
    database.setDatabaseName("Database.db");        //Устанавливаем имя БД
    database.setUserName("User");            //Устанавливаем пользователя
    database.setPassword("Password");        //Устанавливаем пароль
    database.setPort("Port")            //Устанавливаем порт

    if(!database.open())
    {
        qDebug()<<"Database is not openned: "<<database.lastError().text();
        return false;
    }
    return true;
}


main.cpp
#include "class.h"

int main(int argc, char * argv[])
{
    QApplication app(argc,argv);
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
    MyWidget * widget = new MyWidget;
    widget->show();
    return app.exec();
}


project.pro
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
HEADERS += class.h
FORMS += Form.ui
SOURCES += class.cpp main.cpp
QT += sql


ui-шка та-же.
Естесственно в системе должен стоять мускул и в кьюте должен быть собран драйвер QMYSQL(если ты собирал 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


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


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




RSS Текстовая версия Сейчас: 27.2.2025, 16:36