qt5.7 +win7如何得知系统的当前输入法

加盾男爵 2017-12-21 01:39:27
比如我安装了搜狗,五笔,还有系统自带的中文输入法,当用户使用Ctrl+Shift切换输入法时,qt有没有办法知道系统当前输入法时哪一种?
...全文
752 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jue_Xin 2018-01-10
  • 打赏
  • 举报
回复
引用 4 楼 qazaq408 的回复:
[quote=引用 3 楼 Jue_Xin 的回复:] bool XXTextEdit::eventFilter(QObject *watched, QEvent *event) { if(event->type() == QEvent::InputMethod) { QInputMethodEvent* inputEvent = dynamic_cast<QInputMethodEvent*>(event); if(nullptr != inputEvent) { } } return QTextEdit::eventFilter(watched, event); } 只知道输入法输入事件
自己写了一个类,继承QLineEdit,然后重写输入法函数
void InputLine::inputMethodEvent(QInputMethodEvent* event)
{
    qDebug()<<"Input Method Changed";
    QLineEdit::inputMethodEvent(event);
}
当Ctrl+空格切换输入法时(从英文切换至搜狗输入法)没有任何输出,然后开始用搜狗输入法输入中文,没按一个字母都会输出 Input Method Changed 再次用Ctrl+空格切换(从搜狗切换至英文)没有任何输出,然后用英文输入法输入英文,没有任何输出[/quote] 响应时候看通过系统接口获取输入法
加盾男爵 2018-01-02
  • 打赏
  • 举报
回复
引用 3 楼 Jue_Xin 的回复:
bool XXTextEdit::eventFilter(QObject *watched, QEvent *event) { if(event->type() == QEvent::InputMethod) { QInputMethodEvent* inputEvent = dynamic_cast<QInputMethodEvent*>(event); if(nullptr != inputEvent) { } } return QTextEdit::eventFilter(watched, event); } 只知道输入法输入事件
自己写了一个类,继承QLineEdit,然后重写输入法函数
void InputLine::inputMethodEvent(QInputMethodEvent* event)
{
    qDebug()<<"Input Method Changed";
    QLineEdit::inputMethodEvent(event);
}
当Ctrl+空格切换输入法时(从英文切换至搜狗输入法)没有任何输出,然后开始用搜狗输入法输入中文,没按一个字母都会输出 Input Method Changed 再次用Ctrl+空格切换(从搜狗切换至英文)没有任何输出,然后用英文输入法输入英文,没有任何输出
Jue_Xin 2017-12-31
  • 打赏
  • 举报
回复
bool XXTextEdit::eventFilter(QObject *watched, QEvent *event) { if(event->type() == QEvent::InputMethod) { QInputMethodEvent* inputEvent = dynamic_cast<QInputMethodEvent*>(event); if(nullptr != inputEvent) { } } return QTextEdit::eventFilter(watched, event); } 只知道输入法输入事件
加盾男爵 2017-12-22
  • 打赏
  • 举报
回复
引用 1 楼 u010111033 的回复:
这不是Qt的范畴,这个要根据操作系统当前进程进行判定,或者钩子函数获取键盘操作并加以分析
ImmAssociateContext()?
Little柯南 2017-12-21
  • 打赏
  • 举报
回复
这不是Qt的范畴,这个要根据操作系统当前进程进行判定,或者钩子函数获取键盘操作并加以分析

21,440

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧