Russian Qt Forum

Qt => Model-View (MV) => Тема начата: Pupil от Май 24, 2013, 10:37



Название: Отсутствует кириллица при запросе данных c помощью QSqlTableModel
Отправлено: Pupil от Май 24, 2013, 10:37
Добрый день!

При создании класса, наследованного от
Код:
QSqlTableModel
, в функции:
Код:
QVariant ReportModel::data(const QModelIndex &idx, int role) const
{
   QVariant value = QSqlTableModel::data(idx, role);

   switch (role)
   {
        case Qt::FontRole: {

           QString x = value.toString();
           QString  y = x.toLocal8Bit();

           if(idx.column() == 6 && y == "Да")  {

            QFont font = QFont("Helvetica", 12, QFont::Bold);
                          return qVariantFromValue(font);}
            else   if(idx.column() == 7 && y == "Нет")  {
                         QFont font = QFont("Helvetica", 8, QFont::Bold);
                          return qVariantFromValue(font);
            }
            break;
        }
невозможно из
Код:
 QVariant value = QSqlTableModel::data(idx, role);
получить символы кириллицы.

Функция
Код:
toLocal8bit()
срабатывает в случае, если
Код:
QVariant
принудительно в коде присвоить значение, например,
Код:
QVariant x = "Пример";

из базы данных же оно упорно не хочет читать кириллицу.

Qt 4.8
СУБД PostgreSql 9.0.1
кодировка в БД: KOI8R


Название: Re: Отсутствует кириллица при запросе данных c помощью QSqlTableModel
Отправлено: mutineer от Май 24, 2013, 10:39
А исходники в какой кодировке? в local8Bit?


Название: Re: Отсутствует кириллица при запросе данных c помощью QSqlTableModel
Отправлено: Pupil от Май 24, 2013, 10:48
Исходники в KOI8R


Название: Re: Отсутствует кириллица при запросе данных c помощью QSqlTableModel
Отправлено: Kurles от Май 24, 2013, 23:38
Исходники в KOI8R
Хранить исходники в utf-8 таки предпочтительнее, для конвертации использовать
Код
C++ (Qt)
QTextCodec::codecForName("KOI8-R")->fromUnicode(...)
и
Код
C++ (Qt)
QTextCodec::codecForName("KOI8-R")->toUnicode(...)


Название: Re: Отсутствует кириллица при запросе данных c помощью QSqlTableModel
Отправлено: Pupil от Июнь 20, 2013, 14:45
Я понимаю, что лучше использовать UTF-8, но если б все зависело в программировании от свободного выбора... )))
С модельной может поэкспериментирую позже. Решил вопрос как ученый - состряпал делегат )