c++ - 引发 QT QEvent::WindowActivate 事件

标签 c++ qt

以下内容是 previous question 的后续内容.

我有一个 Qt 对话框窗口,其中包含一个 QPlainTextEdit 小部件,我为其创建了一个软件输入面板 (SIP),遵循示例 here 。在此示例中,输入小部件,例如QPlainTextEdit,必须单击两次才能显示 SIP。这是因为(参见示例)单击 QPlainTextEdit 时不会引发 QEvent::WindowActivate 事件。

我正在考虑的解决方法是在 QPlainTextEdit 获得焦点时引发 QEvent::WindowActivate 事件。因此,我想知道是否可以引发 QEvent::WindowActivate 事件以及如何执行 - 假设解决方法有意义。

最佳答案

在 qt-project.org forum 上找到了解决方案

QEvent event(QEvent::RequestSoftwareInputPanel);
QApplication::sendEvent(newFocus, &event);

关于c++ - 引发 QT QEvent::WindowActivate 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17432707/

相关文章:

c++ - 对逗号在 C/C++ 中的工作方式有些困惑

c++ - 创建 Windows 安装程序

c++ - QString 与 QTextStream 的所有权

Visual Studio 2005 中的 C++ 错误检测

c++ - OpenCV错误: Unsupported format or combination of format - when matching ORB features with FlannBasedMatcher的解决方法

c++ - 尝试将对象数组传递给函数时出错

c++ - 如何将按钮锚定到小部件?

c++ - Qt Creator,全屏 View

QT Creator水平旋转框

c++ - 如何将我的程序添加到 macOS 文件和文件夹右键菜单?