2013-09-29 8 views
0

Я знаю, что вы можете сделать это, когда у вас есть доступ к QStandardItemModel, но с использованием combobox->model() возвращает QAbstractItemModel, у которого нет аксессуаров item(int row, int col). Я пробовал работать с QAbstractItemModel::itemData(QModelIndex), но не могу заставить его работать, как мне нужно.Qt5 Можно ли получить контрольный статус элемента из выпадающего списка без указателя на модель?

Мне просто нужно, чтобы получить CheckState из пунктов, if(item.checkState() == Qt::Checked) etc...

Edit: У меня есть этот код, я могу бросить его в QStandardItem?

QModelIndex index(1, 0); 
QVariant item = ui->SearchAssessmentCombo->model()->data(index, Qt::CheckStateRole); 

ответ

1

Вы не можете декларировать индекс самостоятельно, все индексы привязаны к модели. Внутренне функция data() определит, что указатель, который вы указали в параметре, не принадлежит модели и будет возвращать нулевые значения для всего.

Перед тем, как использовать его, вы должны попросить свою модель дать вам действительный индекс.

QModelIndex index = ui->SearchAssessmentCombo->model()->index(1,0); 

 Смежные вопросы

  • Нет связанных вопросов^_^