gpt4 book ai didi

c++ - QComboBox 在 PopUp 处于事件状态时编辑 LineEdit

转载 作者:行者123 更新时间:2023-11-27 22:47:48 27 4
gpt4 key购买 nike

我有一个 QComboBox填充了一些数据。我想编辑 lineEditcomboBox当我这样做是为了制作 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();
}

另外,如果我使用 blockSignallineEdit 上虽然我显示弹出窗口是无用的。有什么建议吗?

编辑

看来我需要提供一些额外的细节。当我使用 ui->comboBox->showPopUp() 时,我需要能够一次写下整个单词而不会失去焦点。在currentTextChanged信号。

或者简单地说:光标不需要从QLineEdit中消失。在发出信号并显示弹出窗口后。

最佳答案

每个组合框都有一个默认的QCompleter,可以在弹出窗口中显示完成选项。我认为您可以通过将此完成器模式设置为 PopupCompletion 来实现您想要的。

ui->comboBox->completer()->setCompletionMode(QCompleter::PopupCompletion);

在这种情况下,组合框将在键入时显示匹配的选择。如果您希望它列出 combobox 的所有项目,我认为您应该实现一个自定义 QCompleter,它匹配所有项目,而不管用户类型如何。

关于c++ - QComboBox 在 PopUp 处于事件状态时编辑 LineEdit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41236278/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com