【发布时间】:2016-12-20 06:39:52
【问题描述】:
我有一个QComboBox 填充了一些数据。我希望编辑comboBox 的lineEdit,并且当我这样做时,让comboBox 在我编辑时显示他的弹出窗口。问题是我失去了lineEdit 的焦点,我一次只能写一封信。
这是我正在做的微不足道的事情:
ui->comboBox->addItem("This");
ui->comboBox->addItem("is");
ui->comboBox->addItem("a");
ui->comboBox->addItem("comboBox");
ui->comboBox->setEditable(true);
connect(ui->comboBox, SIGNAL(currentTextChanged(QString)), this, SLOT(PrintTextLineEdit(QString)));
void MainWindow::PrintTextLineEdit(QString str)
{
ui->comboBox->showPopup();
ui->comboBox->lineEdit()->setFocus();
}
另外,如果我在lineEdit 上使用blockSignal,而我显示弹出窗口是无用的。有什么建议吗?
编辑
看来我需要提供一些额外的细节。当我在currentTextChanged 信号中使用ui->comboBox->showPopUp() 时,我需要能够一次写一个完整的单词而不会失去焦点。
或者说简单点:在信号发出并显示popUp之后,光标不需要从QLineEdit消失。
【问题讨论】:
-
您实际上试图实现什么样的行为?某种下拉建议列表?
-
某种过滤器,但没有代理或自定义列表。我的问题是我希望我可以在弹出窗口打开的情况下输入一个单词。