Russian Qt Forum
Ноябрь 23, 2024, 22:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Подключение к БД и вывод в TableView  (Прочитано 15341 раз)
wildcat
Гость
« Ответ #15 : Февраль 03, 2012, 10:51 »

С ответами туго )) Может кому пригодится, только в новой таблице осталось заменить название колонок. Название колонок присваиваются из первого запроса:

Код
C++ (Qt)
void usbController::s_buttonBox_connect()
{
   QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
   db.setDatabaseName("/var/db/ddb.sl3");
   if (!db.open())
       {
           qDebug() << QObject::trUtf8("Не смогла я открыть базу данных") << db.lastError().text();
       }
//________________________________первый запрос________________
   const char * s1 = "SELECT KEY,  Value FROM UsbProperties",
           * s2 = "SELECT DISTINCT KEY FROM";
     QSqlQueryModel *model = new QSqlQueryModel;
     model->setQuery(QString("")+s2+"("+s1+")");
     QTableView *table_sort = new QTableView();
     table_sort->setModel(model);
 
//________________________________второй запрос________________
     QString s3= QString("SELECT Value FROM(")+s1+")";
     QSqlQueryModel *query= new QSqlQueryModel;
     query->setQuery(s3);
     QTableView *table_sort_1 = new QTableView();
     table_sort_1->setModel(query); // заносим все в таблицу
 
 
     int i = 0;
     int z=0;
     int j = 0;
     int count = 0;
     QString s,s_1;
     QString s4 = s3;
     QSqlQuery q(s4);
     QSqlQuery q_1(s4);
     int column=0;
     int row = 0;
//____________________________подсчет значений___________
     while (q.next())
     {
     s_1 = table_sort_1->model()->data(table_sort_1->model()->index(z++,j)).toString();
     }
     count = z;
     qDebug() << QString("Items in list: ") << count;
 
//____________________________Заполняем новую таблицу, перенос столбцов с троки________
     while (q_1.next())
     {
     s = table_sort_1->model()->data(table_sort_1->model()->index(i++,j)).toString();
    //qDebug(s.toAscii()); //просмотр вывода текста слолбца таблицы
     QTableWidgetItem *item = new QTableWidgetItem(s);
     tableWidget->setColumnCount(6); // кол-во столбцов
     tableWidget->setRowCount(count/6); //подсчет кол-во строк
     tableWidget->setItem(row,column,item);
     column++;
     }
 
}
« Последнее редактирование: Февраль 03, 2012, 11:00 от wildcat » Записан
wildcat
Гость
« Ответ #16 : Февраль 03, 2012, 12:53 »

Можете подсказать как в tableWidget после его заполнения поменять столбцы местами?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #17 : Февраль 06, 2012, 09:32 »

Можете подсказать как в tableWidget после его заполнения поменять столбцы местами?

void QHeaderView::moveSection ( int from, int to )
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
wildcat
Гость
« Ответ #18 : Февраль 09, 2012, 09:29 »

Спасибо.
Получается, что то вроде этого:
Код
C++ (Qt)
     tableWidget->horizontalHeader()->moveSection(3,0);
     tableWidget->horizontalHeader()->moveSection(5,1);
     tableWidget->horizontalHeader()->moveSection(3,2);
     tableWidget->horizontalHeader()->moveSection(5,4);
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.109 секунд. Запросов: 23.