QT 输入框禁止window10触摸屏弹出键盘

qt 输入框禁止window 10键盘弹出

  • QT 输入框
  • window禁用输入法

首先要说,window 10系统对于开发不是很友好,自以为很智能其实就是到处挖坑,好多功能比上不足比下有余。注定windowPhone的失败。

QT 输入框

这几天在用QT做项目,遇到键盘问题。项目是用在window 10 平板。手指点击输入框window自带的键盘就会弹出,而且会遮挡界面,window键盘找不到任何接口,不支持定制,透明度不能调,大小不能调。最可气的是点击输入框毕弹出,遮挡自己写的键盘,又不能关闭触屏弹出键盘。

经过多次多次测试,发现把当前窗口设置焦点,让输入框失去焦点,系统键盘就会退出,然后手动设置输入框为焦点。想想是不是很好呀,只是猜测,还要明天去公司验证。

或者在view层对点击事件进行拦截不让点击事件传入输入框内,然后手动设置输入框为焦点。

window禁用输入法

window 10 可以通过禁用输入法来实现禁止键盘弹出,效果很好,good

#ifdef WIN32
	// 通过禁止所有输入法达到屏蔽系统键盘
	HIMC _IMC;
	HWND hWnd = (HWND)this->winId();
	_IMC = ImmGetContext(hWnd);
	if (hWnd && IsWindow(hWnd)) {
		ImmAssociateContext(hWnd, NULL);
		ImmReleaseContext(hWnd, _IMC);
	}
//启用
ImmAssociateContext(hWnd, _IMC);
#endif // WIN32

你可能感兴趣的:(qt,qt,输入框,window键盘)