1

QComboBox继续存储用户输入的重复字符串,即使我调用它的成员函数QComboBox::setDuplicatesEnabled(false)

即使用户插入重复项,如何存储字符串的单个副本?

来自Qt 文档

duplicatesEnabled : bool
此属性保存用户是否可以在组合框中输入重复项。
请注意,始终可以以编程方式将重复项插入组合框中。
默认情况下,此属性为 false(不允许重复)。
访问功能:
bool duplicatesEnabled () const
void setDuplicatesEnabled ( bool enable )

4

2 回答 2

7

正如文档所说:

此属性保存用户是否可以在组合框中输入重复项。请注意,始终可以以编程方式将重复项插入组合框中。

所以这个选项不会影响你以编程方式设置的字符串。您需要手动从列表中删除重复项。

例如,如果您将列表存储在 中QStringList,则可以使用 轻松删除重复项list = list.toSet().toList()

于 2013-06-21T13:17:42.480 回答
1

您需要检查用户输入是否有效(不重复或不重复)并捕获void editTextChanged ( const QString & text )信号。

您还可以从中派生自己的类QComboBox并重载void keyPressEvent(QKeyEvent* event) // may be not the correct name

于 2013-06-21T21:15:48.047 回答