![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
abc |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
Беру из БД часть значений, пихаю их в comboBox, хочу одну строку в боксе пустую, чтобы она была одним из вариантов, как её добавить?
|
|
|
![]() |
wiz29 |
![]()
Сообщение
#2
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
Беру из БД часть значений, пихаю их в comboBox, хочу одну строку в боксе пустую, чтобы она была одним из вариантов, как её добавить? тогда добавь пустую строку QString(tr("")) на нужную позицию в босксе и все ![]() Сообщение отредактировал wiz29 - 16.12.2010, 14:05 |
|
|
abc |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
поправка: из бд в модель, модель в бокс
|
|
|
wiz29 |
![]()
Сообщение
#4
|
![]() Старейший участник ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 600 Регистрация: 7.7.2010 Из: Санкт-Петербург Пользователь №: 1866 Спасибо сказали: 94 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
vankleef |
![]()
Сообщение
#5
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
только добавляй свою строку после того как модель туда запихнул
|
|
|
abc |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
QSqlQueryModel * query=new QSqlQueryModel;
query->setQuery(str,db); comboBox->setModel(query); qDebug()<<query->insertRow(0); //false |
|
|
vankleef |
![]()
Сообщение
#7
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
QSqlQueryModel * query=new QSqlQueryModel;
query->setQuery(str,db); comboBox->setModel(query); comboBox->insertItem(0,"Еще один элемент в комбобоксе"); |
|
|
abc |
![]()
Сообщение
#8
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
ничего не даёт, так понимаю, что боксу назначена модель, и он не станет отображать прям в него засунутые ячейки
|
|
|
arial |
![]() ![]()
Сообщение
#9
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Создай свою модель и делай там что хочешь.
Примерно так это будет выглядеть:
|
|
|
abc |
![]()
Сообщение
#10
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
данные из m_model в бокс не попадают
если я правильно понял смысл: в m_model помещаю мой запрос, боксу присваиваю экземпляр MyModel наследовался от QSqlQueryModel, потому что компилятор, при наследовании от QAbstractItemModel, ругается на все функции, что они абстрактные - что это значит? |
|
|
arial |
![]()
Сообщение
#11
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
Да, в m_model помещаешь свой запрос. Наследоваться от QSqlQueryModel не надо. Ругается на все функции, потому что они не реализованы. Реализуй их, как в моём примере реализован метод data. Не знаешь, как реализовать - открой исходники той же QSqlQueryModel и посмотри там.
Читай про виртуальные функции, например, здесь. |
|
|
abc |
![]()
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
но если я наследуюсь от qsqlquerymodel смысл же остаётся тот же? почему бы в этом случае функции data не работать по твоему сценарию?
|
|
|
vankleef |
![]()
Сообщение
#13
|
![]() Студент ![]() Группа: Участник Сообщений: 74 Регистрация: 21.10.2010 Пользователь №: 2134 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
ничего не даёт, так понимаю, что боксу назначена модель, и он не станет отображать прям в него засунутые ячейки у меня работает, только я использую не querymodel, а TableModel
|
|
|
abc |
![]()
Сообщение
#14
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
с QSqlTableModel действительно работает, а с QSqlQueryModel нет..
|
|
|
arial |
![]()
Сообщение
#15
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
но если я наследуюсь от qsqlquerymodel смысл же остаётся тот же? Нет ни одной объективной причины наследоваться от QSqlQueryModel. Ты наследуешься от QSqlQueryModel потому что после этого исчезают ошибки при компиляции. Мне это напоминает старый анекдот: Цитата - Ты что ищешь? - Ключи потерял - А где потерял? - Вон там - А почему ищешь здесь? - Здесь светлее! Почитай про QAbstractItemModel там написано про наследование. Если до завтра сам не разберёшься, выложу работающий пример. |
|
|
abc |
![]()
Сообщение
#16
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
сделал через QSqlTableModel, поставил нужное ограничение с помощью её функции setFilter
vankleef мой герой! arial, я завтра на работе в книге посмотрю, там должны быть примеры ("Земсков, примеры"), научусь наследоваться от абстрактитем и проверю твой вариант. если не выйдет, попрошу у тебя помощи, спасибо за поддержку |
|
|
arial |
![]() ![]()
Сообщение
#17
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
В приложении рабочий пример. Выкладываю, как и обещал.
Прикрепленные файлы
|
|
|
abc |
![]()
Сообщение
#18
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
спасибо, arial
return hasIndex(row, column, parent) ? createIndex(row, column, 0) : QModelIndex(); // что означают ? и : |
|
|
arial |
![]()
Сообщение
#19
|
![]() Студент ![]() Группа: Участник Сообщений: 39 Регистрация: 27.9.2009 Пользователь №: 1121 Спасибо сказали: 9 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
abc |
![]()
Сообщение
#20
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 221 Регистрация: 16.12.2010 Из: СПб Пользователь №: 2272 Спасибо сказали: 26 раз(а) Репутация: ![]() ![]() ![]() |
понял)
|
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 29.6.2025, 21:11 |