在密码框输入密码的时候,一般要输入字母、数字或者其他特殊字符,如果当前输入法是中文输入法,比如说搜狗拼音中文,需要手动切换成英文输入法,非常麻烦。如果能在密码框获取到焦点的时候,将输入法切换到美式英语;在密码框失去焦点的时候,将输入法还原到之前的状态,就能解决该问题了。
只使用Qt是无法实现禁用和启用中文输入法的,需要调用Windows API
1.先包含相关的头文件和库
#include <windows.h>
#pragma comment(lib, "User32.lib")
2.变量定义
HKL hCurKL;
3.密码框获取焦点时获取原输入法,并启用美式英语输入法
void PublicObj::disableIME()
{
hCurKL = GetKeyboardLayout(0);
LoadKeyboardLayout((LPCWSTR)QString("0x0409").utf16(), KLF_ACTIVATE);
}
0x0409的专业名称是Language Identif