Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Кодировки в QT

Автор: Alex 7.1.2009, 19:39

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

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

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

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

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

Буду признателен за помощь - Qt только осваиваю.

Автор: void* 7.1.2009, 19:45

а чуть больше кода можешь показать?

Автор: Alex69z 7.1.2009, 19:51

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

Автор: molchanoviv 7.1.2009, 21:02

А класс? Класс покажи.

А QLineEdit как используется Отображаешь ты в ней текст так: QLineEdit::setText(QString);? В QString если я не ошибаюсь по дефолту идет кодировка utf-8.

Небольшая заметка:
Я лучше бы использовал QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
А все строки используемые в программе писал бы так tr("строка")

Автор: Alex69z 7.1.2009, 21:24

QLineEdit используется как элемент формы MyWidget. В него вводится текст запроса для MySQL. В MyWidget есть таблица для отображения результатов запроса - в ней тоже барабер. MySQL настроен на хранение данных в кодировке UTF-8. После установки Qt все ее диалоги, где есть русские (UTF-8 ) буквы показывают иероглифы. Подскажите, плз, как правильно настраивать и использовать фичи локализации в Qt.

С этим справился

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

через

#include <QTextCodec>

Автор: molchanoviv 7.1.2009, 21:27

Цитата
После установки Qt все ее диалоги, где есть русские ( UTF-8 ) буквы показывают иероглифы.

Всмысле все надписи на виджете показываются кракозябрами? Тогда может быть исходники в какой-то другой кодировке?

Автор: Alex69z 7.1.2009, 21:34

Не все. Только русскоязычные. Все, что латинницей написано - выводится нормально. Исходники штатные, с сайта Trolltech. В документации ничего не нашел про опции поддержки локализации при сборке/установке Qt.

Автор: molchanoviv 7.1.2009, 21:36

А код то покажешь? И все-таки проверь кодировку исходников.

Автор: void* 7.1.2009, 21:45

в никсах исходники легко можно конвертнуть в нужную кодировку с помощью iconv

Автор: Litkevich Yuriy 7.1.2009, 21:50

Типовой main.cpp:

/*!
\file main.cpp
\brief Основной файл программы.
*/

#include <QApplication>
#include <QtGui>
#include <QTextCodec>
#include <QLocale>
#include <QTranslator>
#include <QDir>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    Q_INIT_RESOURCE(mdi);

  QDir            dir_plugin;    // каталог плагинов
  QStyle        *pStyle;    // стиль ПО
  QString        locale;        // язык локали
  QTranslator    *qttr;        // переводчик программы
  QStringList     list_path;    // Список путей
  
    QApplication app(argc, argv);

    // Устанавливаем кодеки
    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());// без этой кодировки с БД проблема
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()

    // Устанавливаем свойства программы (понадобится для настроек)
    QCoreApplication::setOrganizationName(QObject::tr("ЗАО \"Мая фирма\""));
    QCoreApplication::setApplicationName(QObject::tr("Моя программа"));

    // устанавливаем путь к плагинам (добавим каталог бинаря)
    dir_plugin = QDir(app.applicationDirPath()+"/plugins/");
    list_path << dir_plugin.absolutePath() << app.libraryPaths ();
    app.setLibraryPaths(list_path);

    // Устанавливаем стили
    pStyle = QStyleFactory::create("windowsxp");//Cleanlooks Plastique windows
    QApplication::setStyle(pStyle);
    app.setPalette(pStyle->standardPalette());

    // Устанавливаем превод библиотек Qt
    locale = QLocale::system().name();    // запрос языка (например: "ru")
    qttr = new QTranslator;
    app.load(QString("qt_") + locale); // загрузка файла qt_*.qm
    app.installTranslator(qttr);         // устанока переводчика    

    MainWindow mainWin;

    mainWin.resize(750, 550);
    mainWin.show();

    return app.exec();
}



Цитата(Litkevich Yuriy @ 8.1.2009, 0:50) *
QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); // Для функций перевода tr()
указывает кодировку исходников!

Автор: Alex69z 7.1.2009, 22:26

#include "ui_Form.h"
#include <mysql.h>
#include <QTextCodec>

class MyWidget : public QWidget {
private:
    MYSQL * Db;
    MYSQL_RES * Result;
public:
    MyWidget(QWidget * parent = 0);
    ~MyWidget();
};

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

MyWidget::MyWidget(QWidget * parent):QWidget(parent) {
    MYSQL_ROW Row;
    unsigned int i,j = 0;
    Ui::Form * form = new Ui::Form;
    form->setupUi(this);
    
    Db = mysql_init(NULL);
    mysql_options(Db,MYSQL_SET_CHARSET_NAME,"utf8");
    mysql_real_connect(Db,"127.0.0.1","User","Password","Database",0,NULL,0);
    mysql_query(Db,"select * from table_1");
    Result = mysql_store_result(Db);
    form->tableWidget->setColumnCount(Result->field_count);
    form->tableWidget->setRowCount(Result->row_count);
    while((Row = mysql_fetch_row(Result))){
        for(i = 0; i < Result->field_count; i++){
            QTableWidgetItem * newItem = new QTableWidgetItem(Row[i]);
            form->tableWidget->setItem(j, i, newItem);
        }
        j++;
    }
}

MyWidget::~MyWidget(){
    if(Db) mysql_close(Db);
}

Автор: Litkevich Yuriy 7.1.2009, 22:51

Alex69z, что это за каша?

Alex69z, опиши к чему это сообщение, это у тебя так main.cpp выглядит?


П.С. В Qt так с БД не работают, есть более удобные средства.

Автор: molchanoviv 7.1.2009, 22:56

Лучше разносить описание класса, и его реализацию по разным файлам.

Замечание: используй тег code=cpp.

Цитата
Db = mysql_init(NULL);
mysql_options(Db,MYSQL_SET_CHARSET_NAME,"utf8");
mysql_real_connect(Db,"127.0.0.1","User","Password","Database",0,NULL,0);
mysql_query(Db,"select * from table_1");
Result = mysql_store_result(Db);


а это что? На мой взгляд тут уместнее использовать модуль QtSql почитать про него можно тут http://www.doc.crossplatform.ru/qt/4.4.3/qtsql.html

Подключаться к базе так

QSqlDatabase database = QSqlDatabase::addDatabase("QMYSQL");
database.setDatabaseName(Database);
database.setUserName("User");
database.setPassword("Password");
database.setPort("Port")
database.open();

Автор: Alex69z 7.1.2009, 23:02

Для умных людей это может выглядеть как "каша" (не сказать еще хужей...), однако это каша МОЯ и я на ней учусь. Не думаю, что Ваше первое Qt-творение выглядело многим лучше. Однако за отзывы премного благодарен.
Насчет "удобных" и "умных" средств для работы с MySQL - это дело вкуса и уровня мастерства. Дорасту и до этого. А пока вот так - напрямую через MySQL API.

Описание класса и его реализацию конечно же следует разносить в разные файлы. Так и сделаю, только не для пробной программки в 3 десятка строк. Мне хотя бы самые простые вещи понять и обкатать. Глянец наводить будем при содании приложения in lege artis.

Автор: molchanoviv 7.1.2009, 23:05

Выложи ui-шку я тебе свояю небольшой код. Сравнишь его со своим. Увидишь что через QtSql работать гораздо удобнее.

По теме: Таки кодировка исходников какая?

Автор: Alex69z 7.1.2009, 23:08

<ui version="4.0" >
<class>Form</class>
<widget class="QWidget" name="Form" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>292</width>
    <height>394</height>
   </rect>
  </property>
  <property name="windowTitle" >
   <string/>
  </property>
  <widget class="QWidget" name="gridLayoutWidget" >
   <property name="geometry" >
    <rect>
     <x>0</x>
     <y>10</y>
     <width>291</width>
     <height>381</height>
    </rect>
   </property>
   <layout class="QGridLayout" name="gridLayout" >
    <item row="1" column="0" >
     <widget class="QLineEdit" name="lineEdit" />
    </item>
    <item row="1" column="1" >
     <widget class="QPushButton" name="pushButton" >
      <property name="text" >
       <string>OK</string>
      </property>
     </widget>
    </item>
    <item row="0" column="0" colspan="2" >
     <widget class="QTableWidget" name="tableWidget" />
    </item>
   </layout>
  </widget>
</widget>
<resources/>
<connections/>
</ui>

Автор: Litkevich Yuriy 7.1.2009, 23:08

Цитата(Alex69z @ 8.1.2009, 2:02) *
однако это каша МОЯ и я на ней учусь. Не думаю, что Ваше первое Qt-творение выглядело многим лучше. Однако за отзывы премного благодарен.
каша с самим сообщением.
1)
Цитата(molchanoviv @ 8.1.2009, 1:56) *
Замечание: используй тег code=cpp.

2) Есть негласное правило писать функцию main в конце файла main.cpp, там ее ожидает увидеть читатель кода.
3) Пиши сообщение, а не только вставляй код, т.к. к моменту появления твоего сообщения другие пользователи могут ответить в тему и твое сообщение окажется несвязным.
4)
Цитата(Alex69z @ 8.1.2009, 2:02) *
Описание класса и его реализацию конечно же следует разносить в разные файлы
Это правилов Qt! стоит тебе применить макрос Q_OBJECT при написании объявления класса и его раелизации в одном файле, тем более main.cpp, как с компиляцией возникнут проблемы!

Мой пример прочитай и используй. Жду результатов.

Автор: Alex69z 7.1.2009, 23:10

Цитата(molchanoviv @ 7.1.2009, 23:05) *
Выложи ui-шку я тебе свояю небольшой код. Сравнишь его со своим. Увидишь что через QtSql работать гораздо удобнее.

По теме: Таки кодировка исходников какая?


.ui файл выложил. А вот где добыть кодировку исходников - пока не нашел. Пойду src смотреть...

Автор: Litkevich Yuriy 7.1.2009, 23:12

Цитата(Alex69z @ 8.1.2009, 2:10) *
А вот где добыть кодировку исходников - пока не нашел
в текстовом редакторе в котором ты пишешь код

Автор: Alex69z 7.1.2009, 23:16

С Q_OBJECT уже попробовал - получил пару шишек. Советы Ваши очень ценю и благодарен Вам за участие. Ваш пример пробовал собрать, однако возникли проблемы:
1. app.load(QString("qt_") + locale); // загрузка файла qt_*.qm - метода load() не нашлось ни для QApplication, ни для QCoreApplication...
2. #include "mainwindow.h" - его еще создать надо (в designer'е насколько я понял).

Автор: 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

Автор: molchanoviv 8.1.2009, 0:18

я не знаю 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 сам).

Автор: Litkevich Yuriy 8.1.2009, 1:25

molchanoviv, ты зря ему такой пример пишешь, используешь Виджет вместо модель/представление.

Теперь код для if(createConnection())

  QString tableName;
    
    tableName = "table_1";
    model = new QSqlTableModel(this, database);
qDebug() << model->database();    
qDebug() << "Table list:" << "\n\r"
        << "\t" << model->database().tables();
    model->setTable(tableName);
qDebug() << model->lastError();    

    if (model->lastError().type() != QSqlError::NoError)
    {
        QMessageBox::critical(0, tr("Ошибка"),
                                    tr("Невозможно получить доступ к таблице ")
                                    + "\"" + tableName + "\""
                                    +tr("\n\rПричина: ")
                                    +(model->lastError().databaseText()),
                                    QMessageBox::Cancel);
    }
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);

    view = new QTableView;
    view->setModel(model);


В заголовочник, в объявление класса добавляем:

    QSqlTableModel        *model;    //!< модель данных.
    QTableView            *view;    //!< табличное представление.


и в pro-файл добавляем:
CONFIG += console

чтобы видеть, что сообщает функция qDebug()

-----
Забыл, что в дизайнере все сделано :(
В дизайнере заменяем виджет на представление (QTableWidget -> QTableView)
и строчка:
Цитата(Litkevich Yuriy @ 8.1.2009, 4:13) *
QTableView *view; //!< табличное представление.
не нужна, а нужно в моем примере исправить
Цитата(Litkevich Yuriy @ 8.1.2009, 4:13) *
view = new QTableView;
view->setModel(model);
на:
    tableWidget->setModel(model);

Автор: Alex69z 8.1.2009, 1:47

Цитата(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 в моих кривых руках не желает ОТОБРАЖАТЬ эти данные. Пытаюсь побороть эту проблему - пока безрезультатно.

Автор: Litkevich Yuriy 8.1.2009, 1:53

Цитата(Alex69z @ 8.1.2009, 4:38) *
как Вы показали
лучше на ты


Цитата(Alex69z @ 8.1.2009, 4:38) *
русские буквы отображаются иероглифами
Тогда, давай с минимума:
main.cpp
#include <QtGui>
#include <QTextCodec>

int main(int argc, char** argv)
{
  QApplication app(argc, argv);

    QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
  
  QLabel    lb;

    lb.setText(QObject::tr("Привет"));
    lb.show();

    return app.exec();
}

pro-file
TEMPLATE = app
TARGET = tst

# Input
#HEADERS += class.h
#SOURCES += class.cpp
SOURCES += main.cpp

#=========== Config ================
CONFIG += debug_and_release build_all

    DESTDIR     = ./build
    OBJECTS_DIR = ./build/obj
    UI_DIR      = ./build/uic
    MOC_DIR     = ./build/moc
    RCC_DIR        = ./build/rcc


CONFIG (debug, debug|release) {
    OBJECTS_DIR  = $$join(OBJECTS_DIR,,,d)
    TARGET       = $$join(TARGET,,,d)
    CONFIG      += console
}

Делай:
qmake
make

Автор: Alex69z 8.1.2009, 2:02

Сделал. QLabel не отображается совсем.

Автор: Litkevich Yuriy 8.1.2009, 2:14

Цитата(Alex69z @ 8.1.2009, 5:02) *
QLabel не отображается совсем.
что запускаешь, tst.exe или tstd.exe?
при запуске последнего, должна появлятся консоль (если из файлового менеджера)

Автор: Alex69z 8.1.2009, 2:28

Цитата(Litkevich Yuriy @ 8.1.2009, 2:14) *
Цитата(Alex69z @ 8.1.2009, 5:02) *
QLabel не отображается совсем.
что запускаешь, tst.exe или tstd.exe?
при запуске последнего, должна появлятся консоль (если из файлового менеджера)


Запускал и то и другое - консоль не появляется, виджет тоже. На свою форму бросил QLabel, задал ей текст - обратно иероглифы.

Автор: Litkevich Yuriy 8.1.2009, 2:35

Цитата(Alex69z @ 8.1.2009, 5:28) *
На свою форму бросил QLabel, задал ей текст - обратно иероглифы.
причем здесь форма, если у тебя элементарный код не работает

в чем код пишишь? Компилишь в командной строке?

Автор: Alex69z 8.1.2009, 2:38

Цитата(Litkevich Yuriy @ 8.1.2009, 2:35) *
Цитата(Alex69z @ 8.1.2009, 5:28) *
На свою форму бросил QLabel, задал ей текст - обратно иероглифы.
причем здесь форма, если у тебя элементарный код не работает

в чем код пишишь? Компилишь в командной строке?


Пишу в gedit, собираю через make - никакой экзотики.

Автор: Litkevich Yuriy 8.1.2009, 3:10

Цитата(Alex69z @ 8.1.2009, 5:38) *
обираю через make
в консоли? А запускаешь тоже в консоли? Если нет делай в консоли. Ты не в линухе случаем?

Автор: Alex69z 8.1.2009, 3:23

Цитата(Litkevich Yuriy @ 8.1.2009, 3:10) *
Цитата(Alex69z @ 8.1.2009, 5:38) *
обираю через make
в консоли? А запускаешь тоже в консоли? Если нет делай в консоли. Ты не в линухе случаем?


Все в консоли делаю. Сижу в Linux'е давно, а проги с GUI писать только сейчас приспичило. Теперь мне эти иероглифы жизнь испоганили....

Автор: molchanoviv 8.1.2009, 10:12

Цитата(Litkevich Yuriy @ 8.1.2009, 1:25) *
molchanoviv, ты зря ему такой пример пишешь, используешь Виджет вместо модель/представление.

У него самого был виджет в ui-шке. Потому и я сделал виджет. К тому-же model-view это еще большая абстракция. по сравнению с mysql api

А системная локаль какая? Да и запакуй в архив свой исходники и выложи их. Все-таки хочу посмотреть их кодировку.

Автор: Alex69z 8.1.2009, 14:56

Цитата(molchanoviv @ 8.1.2009, 10:12) *
А системная локаль какая? Да и запакуй в архив свой исходники и выложи их. Все-таки хочу посмотреть их кодировку.


Системня локаль UTF-8. Исходники выложу.

Исходники виждета

 MyWidget.tar.gz ( 3.12 килобайт ) : 363
 

Автор: Litkevich Yuriy 8.1.2009, 16:08

molchanoviv, системная локаль учитывается:

Цитата(Litkevich Yuriy @ 8.1.2009, 4:53) *
QTextCodec::codecForLocale()
собственно можно в отладку вывести.
А вот почему окно простого примера не появляется непонятно.

Alex69z, Твоя первостепенная задача, добится работы элементарного примера из http://www.forum.crossplatform.ru/index.php?showtopic=1917&view=findpost&p=12426. Пока он не будет работать, ни чего не будет нормально работать. У меня линуха сейчас под рукой нет, чтобы проверить. Может molchanoviv сможет помочь.

Автор: Alex69z 8.1.2009, 20:06

Огромное спасибо за помощь. Вы отзывчивые и добрые люди. Буду рад чем-либо Вас отблагодарить - мой e-mail присутствует, прошу писать. Проблему решил и вот что оказалось: Designer во все виджеты пихал шрифт первый ему попавшийся, в первой (арабской) кодировке. Какая-то кривизна была при установке Qt. Ну с этим я как-нибудь разберусь. Принудительно расставил нужные мне параметры Writing system, задал шрифт - и избавился от иероглифов. Сейчас мой виджет отображает данные из MySQL БД.

Автор: molchanoviv 8.1.2009, 20:09

Да незачто, обращайся. На то он и форум, чтобы помагать людям.

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)