Название: Разорвать связь между QComboBox и его моделью Отправлено: radislav72 от Сентябрь 10, 2010, 09:28 Помогите пожалуйста с таким вроде примитивным заданием:
- (а) есть комбобокс, и дле него установлена QSqlQueryModel - (б) нужно в него, убрав все старые полученные из модели значения (но не удаляя самой модели- она еще нужна), добавить несколько фиксированных значений. Вопрос, как правильно пункт (б) сделать? Я так понимаю, надо как-то разорвать связь между комбобоксом и назначенной ему моделью, после чего просто добавить новые строчки вызовом addItem(). Но как разорвать? Если вызвать clear(), то очищается кроме комбобокса сама модель, а она нужна для другого комбобокса. Если просто создать комбобокс, и не назначая ему модели добавить несколько елементов, то все ОК. Но стоит ему назначить модель, как после етого уже не получается самому формировать список комбобокса. Название: Re: Разорвать связь между QComboBox и его моделью Отправлено: asvil от Сентябрь 10, 2010, 09:43 Не в том направлении мыслите.
Когда в делает addItem, то combobox оперирует у себя внутренней моделью. Для того чтобы выполнить б) нужно сделать combobox::setModel(0); а после combobox::addItems(); Если вы хотите чтобы у вас была установлена sql модель и + какие-то еще значения одновременно, нужно подкручивать sql запрос в стиле Например, для postgresql. Код: select id from sometable Название: Re: Разорвать связь между QComboBox и его моделью Отправлено: radislav72 от Сентябрь 10, 2010, 09:55 Если вы хотите чтобы у вас была установлена sql модель и + какие-то еще значения одновременно Не, все дело в том что специальной sql модели действительно не нужно. Нужно просто добавть несколько фиксированных значений Для того чтобы выполнить б) нужно сделать combobox::setModel(0); а после combobox::addItems(); setModel(0) нельзя делать- так пишет справка : "model must not be 0" Название: Re: Разорвать связь между QComboBox и его моделью Отправлено: radislav72 от Сентябрь 10, 2010, 12:17 Я как бы вышел из положения путем создания вручную новой модели и наложения ее на комбобокс:
Код: modMemTypes = new QStandardItemModel(); Но неужели нет способа "разорвать" связь с предыдущей моделью, без наложения новой? Название: Re: Разорвать связь между QComboBox и его моделью Отправлено: radislav72 от Сентябрь 13, 2010, 07:08 Никто не отвечает, наверно, вопрос глупый :)
Хоть и решил я его для себя, подскажите пожалуйста кто-то ссылку (или укажите направление), чтобы разобраться с устройством комбобокса, и как правильней реализовать то что я спросил в первом посте. |