0

我正在做 Qt 的工作。我没有使用安卓。它只是一个在 windows/linux 上运行的桌面应用程序。如何知道当前关注的是哪个组件(放置在小部件或窗体上)?

我有屏幕键盘,当 QLineEdit、QTextEdit 或 QPlainTextEdit 获得焦点时出现,当这些失去焦点时隐藏。但是当我将焦点从一个 TextEdit(或 lineEdit,PlainTextEdit)切换到另一个 TextEdit(或 lineEdit,PlainTextEdit)时,我的键盘隐藏并再次show.I just want to stop this

4

1 回答 1

1

如果您想阻止键盘在它来自的小部件和它将要使用的小部件相似时闪烁,那么您也许可以实现一个计时器。我想你有丢失的焦点信号去你隐藏键盘的代码。您可以启动一个计时器,而不是真正隐藏它

QTimer::singleShot(500, this, SLOT(really_close_keyb()));

在那个 real_close_keyb() 插槽中,您可以实现代码来检查当前具有焦点的小部件是否应该有键盘,如果应该,那么您不要隐藏它。

有了这个,您的键盘将在用户从一行编辑中聚焦后 1/2 秒,从而有足够的时间专注于另一个而不丢失键盘。调整时间以适应。

于 2013-08-22T09:41:31.990 回答