2016-01-31 3 views
1

У меня есть QComboBox на мой пользовательский интерфейс и установить модель так:QComboBox - Выберите никаких записей

QStringListModel* model = new QStringListModel; 
QStringList stringlist; 
stringlist << "Test1" << "Test2" << "Test3"; 

model->setStringList(stringlist); 
ui->comboBox->setModel(model); 

Теперь я хочу, чтобы изменить текущий индекс не кто (так что я получаю пустой выпадающий) ,

Я уже попытался установить текущий индекс -1 с ui->comboBox->setCurrentIndex(-1);, но это приводит к индексу Aout из диапазона Exeption в QList:

ASSERT failure in QList<T>::operator[]: "index out of range", file F:/Qt/5.4/mingw491_32/include/QtCore/qlist.h, line 486 
+0

Вы можете создать свою собственную модель, которая будет возвращать пустой ' QString() 'для недопустимых индексов. Или просто подкласс 'QStringListModel' и переопределить метод' data' (и, возможно, метод 'index'). –

+0

Похоже, ui-> comboBox-> setCurrentIndex (-1); работает отлично. Аварии были вызваны ошибкой в ​​моем коде. – iBent

ответ

1

Regular (не редактируется) QComboBox не позволяют государству, в котором «нет элемента». Выбор должен быть действительным все время.

Вы должны добавить пустой элемент строки в первой позиции, и вы можете проверить эту тему, чтобы сделать этот фиктивный элемент не выбираемый: https://stackoverflow.com/a/7633081/3336423

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

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