![]() |
|
![]() ![]() ![]() |
|
franzR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
Интересует таблица в которую можно в ручную внести данные не связывая ни с какой SQL таблицей или чем то прочим.
Знаю что есть QSqlTableModel, но она заточена для манипулирования данными в SQL таблице. Вот как в .NET DataTable. Интересует такой аналог по простой причине, чтоб можно было делать Select из такой таблицы как в .NET DataTable, быстрое перемещение по данным и такая же быстрая их обработка. |
|||
|
||||
Artemon |
|
|||
а ты мне нравишься ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1771 Регистрация: 24.2.2004 Где: Челябинск Репутация: 2 Всего: 20 |
QTableWidget
-------------------- Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru |
|||
|
||||
franzR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
Хорошо если его использовать как скрытый компонент, то согласен. А если мне нужно потом вывести все это на форму:
в .NET это делается так
и все, все шлепнулось на форму. Возможно ли в Qt проделать что то вроде такого? |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 24 Всего: 196 |
Любой наследник QWidget (QTableWidget в том числе) может быть помещен на форму. Более того, может быть сам формой!
|
|||
|
||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
В Qt это делается так:
|
|||
|
||||
borisbn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 4875 Регистрация: 6.2.2010 Где: Ростов-на-Дону Репутация: 48 Всего: 135 |
зачем, если
Artemon дал ответ. первым же сообщением - QTableWidget. Если же таблица будет большая, сложная, с возможностью сортировки, подсветки строки в зависимости от одного поля и т.п., то да, нужно наследоваться от модели и переписывать ф-цию data. -------------------- Женщины отличаются от программистов тем, что у них чары состоят из стрингов |
|||
|
||||
franzR |
|
|||
Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 12.10.2009 Репутация: нет Всего: нет |
Добрый день. Может нужно бы создать новую тему но все же попробую спросить еще в этой.
Спасибо за совет с QTableWidget, немного разобрался. Теперь вопрос следующего характера. Вот на форме добавляются данные пользователем в QTableWidget в которой cellWidget, благо, позволяет добавить в себя различные виджеты, и я использую там много QComboBox-ов. Вычитывание из SQLITE базы проходит отлично и я заполняю табличку данными и комбо боксы выставлены в нужных позициях, и все хорошо когда нужен SELECT или INSERT. Но вот теперь чтоб UPDATE сделать т.е. все эти выбранные из базы и намодифицированные пользователем данные снова легли в базу не могу понять как его сделать. Увидел возможность работать с моделью "Model-Based" как то так
Казалось бы идеальный вариант... И в QTableWidget есть setModel() но он приватный и юзать его нельзя. Пошерстив в инете пока не смог найти как бы его прикрутить данные из моего уже хорошо редактируемого QTableWidget в QSqlTableModel чтоб та, прекрасно себе приняла изменения и внесла их в базу.... Пока на ум приходит одно решение, сравнивать выбранные данные из QSqlTableModel с теми что отредактированные были QTableWidget пользователем, а уже перед занесением изменений, менять в ручную QSqlTableModel и делать submitAll ()... Но мне кажется что это мартышкин труд, подскажите пожалуйста как это сделать правильно? |
|||
|
||||
Greeneyed |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 71 Регистрация: 20.4.2006 Репутация: нет Всего: нет |
По хорошему тебе надо было пользоваться QTableView, чтобы можно было его легко связать с моделью. А для вставки в таблицу комбобоксом, нужно было написать свой делегат. В делегате нужно было бы переопределить методы редактирования и, если ты хочешь отображать комбобокс в режиме просмотра, переопределить paint() .
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |