我有一个QComboBox
我想要“自动”编辑。也就是说,用户每次手动更改当前项目的文本时,该文本都应自动“落入”底层模型。可编辑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)
,但这没有帮助。
编辑:用自定义槽当前方法工作正常 - 但我问,如果有这么不涉及任何信号/插槽的方法。
模型/视图模式的整点是视图(QComboBox)o只能显示数据。因此,在你给出的例子中,你只能改变QCombobox内部缓冲区中的数据(模型不应该改变)。你的插槽应该在模型上操作,而不是视图 – friendzis 2012-07-20 10:55:25