qt 中文输入法
来源:互联网 发布:电脑行业进销存软件 编辑:程序博客网 时间:2024/05/16 17:44
上篇文章 讲了输入法的大概流程,制作。 使用等步骤。
在正式应有的时候发现, QComboBox的时候 会弹出输入法,但是我不需要。 于是琢磨了几种办法都没行同, 想了下在java里面每个对象有个属性就是对象名称。 于是我就试试在qt里面找。 居然让我发现了。 ObjectName. 由于QComboBox 分为两部分, 一个是QLineEdit, 一个是QAbstractItemView , 第一个不用说就是主显示,第二个是下拉列表哪个控件。 有多个实现方式,具体怎么实现的可以看源代码。 可以用ComboBox.showPopup() ComboBox.hidePopup(),手动显示隐藏该控件。 由于comboBox自己内部创建的QAbstractItemView 对象没有名称, 于是我就在显示输入法的时候 判断当前的焦点窗口对象(这里说下, QCombobox的焦点会在QLineEdit与QAbstractItemView之间变化。 当没有你点击弹出下拉列表时候 QLineEdit → QAbstractItemView, 当点击了一个选项或者隐藏了QAbstractItemView的时候 焦点又从QAbstractItemView 回到了QLineEdit 。 )名称是否为空, 如为空就不弹出。
代码: myInput.cpp function updateHandle.
void myInput::updateHandler(int type)
{
QPointer<QWidget> w = QApplication::focusWidget();
switch(type)
{
case QWSInputMethod::FocusIn:
{
if( w && !w->inherits( "QComboBox" ) && !w->objectName().isEmpty() )
{
updatePosition();
m_ky->show();
break;
}
}
case QWSInputMethod::FocusOut:
{
m_ky->hide();
break;
}
default:
break;
}
QWSInputMethod::updateHandler( type );
}
好了。如有后续bug,会附上解决方案。
- Qt开发中文输入法
- ubuntu qt 中文输入法
- qt 中文输入法
- qt 中文输入法
- qt 中文输入法
- qt移植 SYSZUXpinyin中文输入法
- Ubuntu Linux 输入法及 Qt 中文安装
- 解决linux QT不能切换中文输入法
- SYSZUXpinyin中文输入法的移植(到QT)
- SYSZUXpinyin中文输入法的移植(到QT)
- deepin 2014.1下Qt creator 无法切换中文输入法
- SYSZUXpinyin中文输入法的移植(到QT)
- SYSZUXpinyin中文输入法的移植(到QT)
- QT中文输入法状态下获取键盘输入事件
- Qt之Windows下禁用和启用中文输入法
- 中文输入法
- Ubuntu 14.04下Qt 5.3.1 使用fcitx 输入法输入中文的问题
- QT输入法浅析
- 互联网人工智能时代的到来
- MFC控件之CMonthCalCtrl
- 网络传真的安装及使用方法
- TinyXml之 Parse
- Android 视图绑定实现代码优化
- qt 中文输入法
- qt 之 paintEvent(QPaintEvent *pe)
- 中海岸扫盲之--什么是不干胶
- 【转载】 VS2010远程调试设置详细教程
- linux shell脚本小记
- ffmpeg写 mov+aac 文件时注意事项
- 原理图与PCB设计基础
- c++,vector,map
- FFmpeg时间戳详解。 解码编码