2013-06-21 2 views
0

QComboBox сохраняет сохраненные повторяющиеся строки, введенные пользователем, даже если я вызываю его функцию-член QComboBox::setDuplicatesEnabled(false).QComboBox хранит повторяющиеся записи

Как хранить одиночные копии строк, даже если пользователь вставляет дубликаты?

От Qt documentation:

duplicatesEnabled : bool
Это свойство может ли пользователь вводить повторяющиеся элементы в ComboBox.
Обратите внимание, что всегда можно программно вставлять повторяющиеся элементы в поле со списком.
По умолчанию это свойство является ложным (дубликаты не допускаются).
Функция доступа:
bool duplicatesEnabled() const
void setDuplicatesEnabled (bool enable)

ответ

4

Как говорится в документации:

Это свойство имеет, может ли пользователь вводить повторяющиеся элементы в выпадающего списка. Обратите внимание, что всегда можно программно вставлять повторяющиеся элементы в поле со списком.

Таким образом, этот параметр не влияет на строку, установленную программно. Вам необходимо удалить дубликаты из списка вручную.

Например, если вы сохраняете свой список в QStringList, дубликаты можно легко удалить с помощью list = list.toSet().toList().

+0

я осветленной мой вопрос. Конечный пользователь добавляет строки в поле со списком. – Pietro

1

вам необходимо проверить, если пользовательский вход действителен (не дублируется или нет) и улавливает сигнал void editTextChanged (const QString & text).

вы также можете получить свой собственный класс от QComboBox и перегружать void keyPressEvent(QKeyEvent* event) // may be not the correct name