您当前的位置: 首页 >  令狐掌门 qt

Qt界面无法切换输入法的解决方法

令狐掌门 发布时间:2020-12-06 20:24:23 ,浏览量:2

        在有些项目中,可能需要在 widget上切换输入法,进行文本输入,进行标注;但是,不管怎么按shift都无法切换中英文,在MFC的对话框中也一样,但是单文档,多文档却可以,这是什么原因呢,难道是Qt的bug? 要解决这个也不难,由于输入事件在widget中默认没有处理,需要在窗体构造函数中进行设置,添加几行代码即可,如下:

this->setAttribute(Qt::WA_InputMethodEnabled, true);
this->setAttribute(Qt::WA_KeyCompression, true);
this->setFocusPolicy(Qt::WheelFocus);

       中英文可以切换了,那怎么接收输入法输入的内容呢,如下图

       如果是Edit类型的控制, 自动获取了输入的内容,Widget上是不行的,需重写输入事件inputMethodEvent

       本篇博客全部代码如下:

       头文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include 

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class 
关注
打赏
1688896170
查看更多评论

令狐掌门

暂无认证

  • 2浏览

    0关注

    485博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0959s