2016-01-31 58 views
1

我有一個QComboBox我的用戶界面和設置模式是這樣的:QComboBox - 選擇沒有進入

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

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

現在我想改變目前的指數是沒有(讓我得到一個空白的組合框) 。

我已經嘗試設置當前索引與ui->comboBox->setCurrentIndex(-1);爲-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

定期(不可編輯)QComboBox不允許的狀態下, 「沒有項目」被選中。選擇必須始終有效。

你將不得不在第一位置添加一個空字符串項目,你可能要檢查這個話題作出不選擇這個虛擬項目:https://stackoverflow.com/a/7633081/3336423