【发布时间】:2016-06-16 05:29:33
【问题描述】:
我正在打开一个包含 QLineEdit 的 QDialog。我希望 QLineEdit 最初具有键盘焦点,并以闪烁的光标作为视觉提示。很简单吧?
调用line_edit->setFocus() 无效。
调用line_edit->grabKeyboard() 使其输入焦点但是
- 闪烁的插入符号没有移动到
line_edit - 如果我点击不同的 QLineEdit,闪烁的插入符号会出现那里,但按键仍会发送到
line_edit
如果我都不做,我必须点击line_edit 来获得插入符号并输入焦点。查看QLineEdit::mousePressEvent 的源代码,似乎关键函数是QWidgetLineControl::moveCursor,但这不能通过公共API 访问,并且进一步查看源代码并没有显示出任何希望。
那么我该如何移动该死的键盘输入光标呢?
【问题讨论】:
-
显示对话框后,哪个小部件获得焦点?您可以通过 GammaRay /
QApplication进行检查。
标签: qt