我有一个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)
,但那没有帮助。
编辑:使用自定义插槽的当前方法工作正常,但我想问的是是否有一种不涉及任何信号/插槽的方法。
发布于 2012-07-20 01:01:53
若要在用户更改文本时自动设置文本,我们可以按以下方式编辑您的插槽:
void comboBoxEditTextChanged( const QString& text )
{
int index = someComboBox->findText(text);
if(index != -1)
{
someComboBox->setCurrentIndex(index);
}
someComboBox->setItemText( someComboBox->currentIndex(), text );
}
我希望这能解决你的问题
发布于 2012-07-20 00:18:28
QComboBox可以使用
combo->additem("X");
combo->addItem(QString Y);
而您可以管理其中的最大项目数。请通过以下链接获得详细信息。
所以,在你的位置,
void comboBoxEditTextChanged( const QString& text )
{
someComboBox->addItem(text);
}
https://stackoverflow.com/questions/11575268
复制相似问题