Qcombobox :: ShowPopup()从其Qlineedit中窃取了焦点
QComboBox::showPopup() steals focus from its QLineEdit
为了创建一个Qcombobox,可以在输入时过滤其值列表,我将插槽附加到Qcombobox的EditTextChanged-event上。这样就这样做了:
void SearchableComboBox::slotEditing(QString in_text)
{
this->showPopup();
}
不幸的是,这立即从Qlineedit中窃取了焦点,我不能再输入了。呼叫lendeDit(( -> setFocus((没有什么区别,我不想抓取Kekeyboard((,因为这会造成另一个痛苦的世界。有任何建议吗?
这并不是真正的组合,而更多的是lineedit的完成listView。我完全实现了Ruqola(kde client for Rocket Chat(,您可以在https://lxr.kde.org/source/network/ruqola/src/widgets/common/common/common/completetionlistview.cpp上查看源代码。请注意与焦点代理事物的小舞蹈:
setFocusPolicy(Qt::NoFocus);
textWidget->setFocusPolicy(origPolicy);
setFocusProxy(textWidget);
和用于在正确位置放置完整弹出的长方法slotCompletionAvailable()
...
为此目的使用焦点代理方法。请参阅https://doc.qt.io/qt-5/qwidget.html#setfocusproxy
使用此弹出窗口将其输入转移到LineDit。
在您的情况下,您可以尝试
之类的东西this->setFocusProxy( this->lineEdit() );
,但也许您应该阅读如何使用QCompleter
。这将在打字时提供自动完成,并且可能对您有用。
相关文章:
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- 我可以从其变量中获取对类对象的引用吗?
- 从其存储的回调中删除 std::函数是否安全
- 为什么 gcc 无法从其前向声明中检测到友元类命名空间?
- 我如何实现从其基类获取变量的构造函数
- Qcombobox :: ShowPopup()从其Qlineedit中窃取了焦点
- 如何从其抽象母类上的指针初始化子类?
- 有条件的操作员从其参数的副本中返回值
- C Windows-如何从其PID(错误)获取过程路径
- 为什么当其他类别存在时,为什么不从其对象文件中使用一种类方法
- 从其初始化的功能中使用的特定大小的阵列
- 如何从其HWND上构建窗口的技术
- 如何使用函数指针从其内存地址调用成员函数
- 从其句柄 (HMONITOR) 获取监视器索引
- 如何使用OpenSSL API从其PEM格式字符串中读取RSA公钥
- 从其基类列表中调用重写的函数
- 从其接口隐藏类实现
- 使用指针从其密钥中访问MAP的值
- 如何从其中心调整QWidget的大小
- C++从其线程函数中引用boost::线程