2013-06-21 87 views
0

QComboBox保持存儲用戶輸入重複的字符串,即使我調用它的成員函數QComboBox::setDuplicatesEnabled(false)QComboBox不斷存儲重複的條目

我怎麼能存儲甚至當用戶插入重複字符串的單份?

Qt documentation

duplicatesEnabled : bool
這個屬性保存用戶是否可以輸入重複項目到組合框。
注意,總是可以以編程方式插入重複的項目進入組合框。
默認情況下,此屬性爲false(不允許重複)。
訪問功能:
bool duplicatesEnabled() const
void setDuplicatesEnabled (bool enable)

回答

4

由於文件說:

這個屬性保存用戶是否可以輸入重複的項目進入 組合框。請注意,以編程方式總是可以將重複項插入組合框。

所以這個選項不影響您通過編程設置字符串。您需要手動刪除列表中的重複項。

例如,如果您要將您的列表存儲在QStringList中,則可以使用list = list.toSet().toList()輕鬆刪除重複項。

+0

我澄清我的問題。最終用戶將字符串添加到組合框。 – Pietro

1

你需要檢查,如果userinput是有效的(不重複與否),趕上void editTextChanged (const QString & text)信號。

你也可以從QComboBox派生自己的類和重載void keyPressEvent(QKeyEvent* event) // may be not the correct name