Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/65: Рейтинг темы: голосов - 65, средняя оценка - 4.55
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Как соединить QSqlQueryModel с QTableView?

15.05.2012, 18:07. Показов 13003. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Привет всем.
У меня 1 вопрос, как можно соеденить QSqlQueryModel с QTableView?

питаюс так:
C++ (Qt)
1
2
3
QSqlQueryModel model;
...
ui->tableView->setModel(model);
Но компилятор говорит что не смогу седенить так, параметр требуется другой у setModel() -a..


спасибо заранее...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.05.2012, 18:07
Ответы с готовыми решениями:

Как сделать checkbox в QTableView с QSqlQueryModel?
Создал модель, наследуемую от QSqlQueryModel и делегата для QTableView. Checkbox не переключается....

Как выводить данные ячеек в их ToolTip-ы в QSqlQueryModel с QTableView?
model = new QSqlQueryModel; QString sqlquery = "SELECT de.id as de_id, de.content as...

QSqlQueryModel + QTableView + QDateTime
В табличке, в столбце с датой, отображается 17.06.15 11:18. Хотя, вывод qDebug() <<...

Пустые ряды в QTableView + QSqlQueryModel
Вывожу в QTableView результаты SQL-запроса таким образом (схематически): QSqlQuery...

19
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
15.05.2012, 18:10 2
C++ (Qt)
1
ui->tableView->setModel(model);
замени на
C++ (Qt)
1
ui->tableView->setModel(&model);
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
15.05.2012, 19:52  [ТС] 3
Чистый,
спасибо, еще 1 вопрос, чтоб вивести в QTableView инфо делаю так:
C++ (Qt)
1
2
3
4
5
QSqlQuery query(db);
QSqlQueryModel qm;
query.exec("SELECT * FROM manage;");
qm.setQuery(query);
ui->tableView->setModel(&qm);
Но нечего не происходит (( что надо изменить?

П.С из книги читаю, а у них там делается спомощю QSqlTableModel ...
0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
15.05.2012, 20:46 4
если модель QSqlQueryModel то просто сделай так:
C++ (Qt)
1
2
3
4
5
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT * FROM manage");
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
view->setModel(model);
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.05.2012, 14:38  [ТС] 5
Чистый,
Ты предлогаеш вообше не использовать QSqlQuery?
0
57 / 57 / 1
Регистрация: 07.10.2011
Сообщений: 203
16.05.2012, 14:55 6
Могу ошибаться или как минимум написать неточный ответ.

В случае использования
C++ (Qt)
1
2
3
model->setQuery("SELECT * FROM manage");
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
запросы с выборкой из таблиц qt сделает автоматически по принципу "все строки" и соответственно колонки этих строк, указанные в setHeaderData.

если вас устраивает такая таблица, то можно и не использовать query
если же нужны ограничения по типу WHERE то наверно уже без написанного запроса никак, не узнавал.
1
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
16.05.2012, 15:43 7
нет не правильно можно и where использовать, касательно надо или нет QSqlQuery то сказать не могу так как не владею информацией о том что в итоге пишется, но если вам надо при запуске приложения получить данные, отобразить их на форме и дальше работать то то что я показал должно хватить....
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.05.2012, 20:16  [ТС] 8
Чистый,
Я ето все не толко для отображение, пишу прог который изменит базу и т.д


А есть шанс исправить то что я показал выще(по етой методикой)?
0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
16.05.2012, 20:22 9
ну так этот способ позволяет менять данные, что именно исправить?
0
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.05.2012, 22:36  [ТС] 10
Чистый,
Я о первом моем примере, как еге можно перенастроить так, чтоби работало и показаволо всё?
0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
16.05.2012, 22:49 11
убрать QSqlQuery или тебе надо с ним?
0
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
17.05.2012, 13:57  [ТС] 12
Чистый,
Надо с SqlQuery.

0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
17.05.2012, 15:12 13
ну так и передавай ему это SqlQuery:
C++ (Qt)
1
2
3
4
5
QSqlQuery query(db);
QSqlQueryModel qm;
query.prepare("SELECT * FROM manage;");
qm.setQuery(&query);
ui->tableView->setModel(&qm);
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
17.05.2012, 17:06  [ТС] 14
Чистый,
Цитата Сообщение от Чистый Посмотреть сообщение
QSqlQuery query(db);
QSqlQueryModel qm;
query.prepare("SELECT * FROM manage;");
qm.setQuery(&query); // <---тут ошибка, требует толко "query", без "&"
ui->tableView->setModel(&qm);

Скомпилировал но всё равно не работает(не показивает базу данных в QTableView).

0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
17.05.2012, 17:26 15
хм, писал по памяти, вечером дома состряпаю маленький проект и посмотрю что можно наворотить....
0
Каратель
Эксперт С++
6609 / 4028 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
17.05.2012, 19:52 16
разве для модели не нужно вызывать select ?

Добавлено через 1 минуту
C++ (Qt)
1
2
3
4
5
6
QSqlQueryModel *model = new QSqlQueryModel;
model->setQuery("SELECT * FROM manage");
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
model->select();
view->setModel(model);
2
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
17.05.2012, 20:37 17
Да про select я совсем забыл.....
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
18.05.2012, 16:57  [ТС] 18
Jupiter,
Спасибо большое, но вот вам на ответ:
Bash
1
2
qet.cpp: In member function ‘void qet::on_pushButton_21_clicked()’:
qet.cpp:128:5: error: ‘class QSqlQueryModel’ has no member named ‘select
И П.С мне с QSqlQuery надо





Чистый, Пожалуйста попробуй дома как я сказал(с QSqlQuery) ((
0
Автор FAQ
2732 / 1428 / 89
Регистрация: 08.09.2011
Сообщений: 3,746
Записей в блоге: 1
18.05.2012, 17:00 19
Ок вечером попробую, выложу тут тестовый проект.... сегодня как раз пятница можно и посидеть подольше за ПК....
1
Прогер
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
18.05.2012, 22:40  [ТС] 20
Чистый,
Спасибо огромное, буду ждать

Добавлено через 4 часа 49 минут
Всем спасибо огромное, вот так сделал:

C++ (Qt)
1
2
3
4
5
QSqlQueryModel *model = new QSqlQueryModel;
QSqlQuery query;
query.exec("SELECT * FROM manage");
model->setQuery(query);
ui->tableView->setModel(model);
Работает как надо...
0
18.05.2012, 22:40
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2012, 22:40
Помогаю со студенческими работами здесь

Как преобразовать QSqlQueryModel для TreeView. Где найти пример?
После запроса к базе получю модель которую если кинуть на таблицу будет нечто такое: машина1 |...

QSqlQueryModel::insertColumns
извините за глупый наверное вопрос, но для перестраховки хочу спросить. Дынный метод не добавит...

tableview, ui и QSqlQueryModel
я в qt нуб. подскажите в чем причина. форум перерыл, но не нашел почему не работает qt...

Как заполнить QTableView
Доброго времени суток. С таблицами я работаю в первые, если буду тупить то поправьте меня...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru