crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в модель и qcombobox
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
abc Дата 20.12.2010, 13:54
  понял)
arial Дата 20.12.2010, 13:41
  Тернарная операция
abc Дата 20.12.2010, 13:28
  спасибо, arial
return hasIndex(row, column, parent) ? createIndex(row, column, 0) : QModelIndex(); // что означают ? и :

arial Дата 20.12.2010, 9:45
  В приложении рабочий пример. Выкладываю, как и обещал.
abc Дата 19.12.2010, 21:13
  сделал через QSqlTableModel, поставил нужное ограничение с помощью её функции setFilter
vankleef мой герой!
arial, я завтра на работе в книге посмотрю, там должны быть примеры ("Земсков, примеры"), научусь наследоваться от абстрактитем и проверю твой вариант.
если не выйдет, попрошу у тебя помощи, спасибо за поддержку
arial Дата 19.12.2010, 18:04
 
Цитата(abc @ 19.12.2010, 17:27) *
но если я наследуюсь от qsqlquerymodel смысл же остаётся тот же?

Нет ни одной объективной причины наследоваться от QSqlQueryModel. Ты наследуешься от QSqlQueryModel потому что после этого исчезают ошибки при компиляции. Мне это напоминает старый анекдот:
Цитата
- Ты что ищешь?
- Ключи потерял
- А где потерял?
- Вон там
- А почему ищешь здесь?
- Здесь светлее!

Почитай про QAbstractItemModel там написано про наследование. Если до завтра сам не разберёшься, выложу работающий пример.
abc Дата 19.12.2010, 17:55
  с QSqlTableModel действительно работает, а с QSqlQueryModel нет..
vankleef Дата 19.12.2010, 17:40
 
Цитата(abc @ 17.12.2010, 12:40) *
ничего не даёт, так понимаю, что боксу назначена модель, и он не станет отображать прям в него засунутые ячейки


у меня работает, только я использую не querymodel, а TableModel

themeModel=new QSqlTableModel;
themeModel->setTable("themes");
themeModel->select();
    
widget.themecomboBox->setModel(themeModel);
widget.themecomboBox->setModelColumn(themeModel->fieldIndex("name"));
widget.themecomboBox->insertItem(0,QString::fromUtf8("Все вопросы"));
widget.themecomboBox->setCurrentIndex(0);
abc Дата 19.12.2010, 17:27
  но если я наследуюсь от qsqlquerymodel смысл же остаётся тот же? почему бы в этом случае функции data не работать по твоему сценарию?
arial Дата 19.12.2010, 17:04
  Да, в m_model помещаешь свой запрос. Наследоваться от QSqlQueryModel не надо. Ругается на все функции, потому что они не реализованы. Реализуй их, как в моём примере реализован метод data. Не знаешь, как реализовать - открой исходники той же QSqlQueryModel и посмотри там.
Читай про виртуальные функции, например, здесь.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 16:48