Solved Update combobox data from model
-
I have a categories QComboBox which is linked to a QSqlTableModel. Also I have a second window to manage categories (add/remove). How to update/refresh/reload the combobox whenever a category is added/removed?
My code:
int catIndex = model2->fieldIndex("category"); model2->setRelation(catIndex, QSqlRelation("categories", "id", "name")); QSqlTableModel *catModel = model2->relationModel(catIndex); ui->comboBox_2->setModel(catModel); ui->comboBox_2->setModelColumn(catModel->fieldIndex("name")); mapper->addMapping(ui->comboBox_2, catIndex);
-
Hi @rudag
after adding/removing in your second window send a signal to a slot of the object where you call "your code" and in the slot call "your code" again.
-Michael.
-
Hi,
How are you adding / removing these categories ?
-
-
Hi @rudag
I do not understand. You wrote the code in your first post. Just call it again. Then the changed model should refill the combobox.
If you want the model to update your combobox, though, you will probably have to derive your own model class and override the functions for update and remove of data sets.
-Michael.
-
@m-sue
I'm getting the following error when I try to call that piece of code more than once:
QComboBox::setModel: cannot set a 0 model -
Then why not share the model between the widgets ?
-
I did this:
ui->comboBox->clear(); ((QSqlTableModel*)ui->comboBox->model())->select();
And it's working!