关于QLineEdit的Password模式屏蔽中文输入法

kevin_zz 2010-08-20 02:56:36
请教一个问题,怎么让QLineEdit的Password模式下中文输入法失效,在Password模式下只能输入英文字母
...全文
894 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kevin_zz 2010-08-30
  • 打赏
  • 举报
回复
这个问题不知道你们登录邮箱试过没有?我觉得回答问题之前先看看登录邮箱的情况
kevin_zz 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 xlttap 的回复:]
这个太简单了,你只要在QLineEdit中设置一个validator就可以了。如:
QRegExp rx("([A-Z] | (a-z))*$");
QValidator *validator = new QValidator(rx,this);
QLineEdit *le = new QLineEdit;
le->setValidator(validator);
[/Quote]
请教一个问题,当你是中文SCIM输入法,敲键盘会在QlineEdit上怎样的?是没有输入还是咋样的
kevin_zz 2010-08-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 enum_623 的回复:]
也就是说:QLineEdit是个密码文本框而已!对不,楼主?
[/Quote]
哪有那么简单,不是说了像登录邮箱如GMail一样的效果
lishaman 2010-08-29
  • 打赏
  • 举报
回复
在QtCreator里面直接设置QLineEdit为密码属性 就OK了
xlttap 2010-08-29
  • 打赏
  • 举报
回复
这个太简单了,你只要在QLineEdit中设置一个validator就可以了。如:
QRegExp rx("([A-Z] | (a-z))*$");
QValidator *validator = new QValidator(rx,this);
QLineEdit *le = new QLineEdit;
le->setValidator(validator);
enum_623 2010-08-27
  • 打赏
  • 举报
回复
也就是说:QLineEdit是个密码文本框而已!对不,楼主?
kevin_zz 2010-08-22
  • 打赏
  • 举报
回复
我的意思是当我进入密码框要输入密码时,如果输入法(如SCIM中文输入,还有其他类型的输入法)打开,则关闭此输入法,那么用户在密码框里输入的不是如中文,而是键盘按下的字母或者数字。如果你输入法(如中文输入法)打开,那么在密码框中输入的是中文相关的东西,我的想法就是就像登录邮箱时如GMAIL一样,进入输入密码时如果中文输入法打开则屏蔽它,而使得输入得到的是键盘的字母或者数字
巴依老爷 2010-08-20
  • 打赏
  • 举报
回复
windows下似乎得使用native api
ImmAssociateContext((HWND)ui->lineEdit->winId(), NULL);
qvbhsskg 2010-08-20
  • 打赏
  • 举报
回复
屏蔽输入法?那还怎么输入内容。

照我说那样做,没得错,用户根本就感觉不倒。
kevin_zz 2010-08-20
  • 打赏
  • 举报
回复
您的方法应该不行吧,你上面说的其实还是可以输入中文,只是输入后然后判断是中文再清除里面的内容
在输入密码时肯定不能这样,应该是当光标处于QLineEdit的Password模式里屏蔽输入法(如果打开输入法则关闭它),就像我们平时输入密码时一样(如登录邮箱)
qvbhsskg 2010-08-20
  • 打赏
  • 举报
回复
textchange信号处理函数中。

取出QLineEdit内容,再取出最后一个字符,判断这个字符是否为中文(网上查),如果是就去掉,然后重新设置QLineEdit的内容。

16,235

社区成员

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

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