2013-06-21 49 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