可编辑的QComboBox:将编辑文本与项目文本同步
Editable QComboBox: synchronize edit text with item text
我有一个QComboBox
,我想"自动"编辑它。也就是说,每次用户手动更改当前项的文本时,该文本都应该自动"落"到底层模型中。
到目前为止,我已经通过一个自定义信号处理程序达到了这一点:
void setupUi() {
...
connect( someComboBox,
SIGNAL(editTextChanged(QString)),
SLOT(comboBoxEditTextChanged(QString)) );
...
}
void comboBoxEditTextChanged( const QString& text ) {
someComboBox->setItemText( someComboBox->currentIndex(), text );
}
所以我想知道,有没有可能用更少的代码来做到这一点?我试过QComboBox::setInsertPolicy(QComboBox::InsertAtCurrent)
,但没用。
编辑:当前具有自定义插槽的方法工作正常,但我想问是否有不涉及任何信号/插槽的方法。
要在用户更改文本时自动设置文本,我们可以按如下方式编辑您的插槽:
void comboBoxEditTextChanged( const QString& text )
{
int index = someComboBox->findText(text);
if(index != -1)
{
someComboBox->setCurrentIndex(index);
}
someComboBox->setItemText( someComboBox->currentIndex(), text );
}
我希望这将解决您的问题
QComboBox可以使用手动添加项目
combo->additem("X");
combo->addItem(QString Y);
而您可以管理其中的最大项目数。请通过以下链接了解详细信息。
链接
所以,在你的插槽中,
void comboBoxEditTextChanged( const QString& text )
{
someComboBox->addItem(text);
}
相关文章:
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- 如何使用 c++ 实现并发文件/文本编辑?
- 如何在文本编辑器中处理 [-Wc++11-extensions]
- QT 创建器只会将第一个单词从文本编辑转换为纯文本
- 在C++的“编辑”文本框中禁用文本编辑,同时保持启用滚动
- 如何在Windows中将使用Qt制作的记事本设置为默认文本编辑器
- 尝试在自定义 QT 创建器文本编辑器中创建查找和替换循环.我似乎无法设置光标位置
- UTF-16LE 编码问题与 Qt 文本编辑器用 C++ 编写
- 要求文本编辑,文本格式
- 如何将库导入文本编辑器
- 富文本编辑器--创建和维护项目符号列表时的问题
- 使用Strncpy在C++中创建一个简单的文本编辑器
- Qt C++ 如何在文本编辑的开头获取光标
- 在C 中创建简单的文本编辑器
- 在QT中遇到了丰富的文本编辑问题
- 递归功能以创建文本编辑
- 简单的C++文本编辑程序
- std::ifstream 在将文本编辑器从记事本++切换到Sublime Text 2以使用它正在读取的文件后无法读入?
- 使用 C++ 获取默认的 Windows 文本编辑器.exe路径
- 使用文本编辑器打开一个 txt 文件,而它已经被 "fopen()" 打开并正在使用中?