![](/img/trans.png)
[英]How to align dropdown item text in a QComboBox without making it editable
[英]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);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.