gpt4 book ai didi

c++ - QComboBox::showPopup()从其QLineEdit窃取焦点

转载 作者:行者123 更新时间:2023-12-02 10:38:38 25 4
gpt4 key购买 nike

为了创建一个QComboBox可以在键入时过滤其值列表,我在QComboBox的editTextChanged-event上附加了一个插槽,以在用户开始键入时打开其列表 View 弹出窗口。这样做是这样的:

void SearchableComboBox::slotEditing(QString in_text)
{
this->showPopup();
}

不幸的是,这立即从QLineEdit中夺走了焦点,我无法键入了。
调用lineEdit()-> setFocus()没什么区别,而且我也不想捕获keyKeyboard(),因为这会给整个世界带来痛苦。
有什么建议吗?

最佳答案

为此,请使用“焦点代理”方法。参见https://doc.qt.io/qt-5/qwidget.html#setFocusProxy

这样,弹出窗口会将其输入中继到lineedit。

在您的情况下,您可以尝试类似

this->setFocusProxy( this->lineEdit() );

但是也许您应该阅读如何使用 QCompleter。这将在键入时提供自动补全功能,可能对您也很有用。

关于c++ - QComboBox::showPopup()从其QLineEdit窃取焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56931419/

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