使用qt自带的函数就可以实现:lineEdit->setEchoMode(QLineEdit::Password);//输入的时候就显示圆点或者lineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);//输入时显示数字,失去焦点时显示圆点
背景:继承修改
Qt
的Qdialog,框内添加了一下
line
edit
,但是发现焦点也抓到了,软键盘也弹出了,就是不能
输入
字符。
先找原因,因为是使用的模态对话框,最后有执行exec(),所以查看
Qt
的帮助文档怎么介绍exec()的。
[virtual slot] int QDialog::exec()
Shows the dialog as a modal dialog, blocking un...
方法1:代码设置:
//设置
line
Edit
_3为
输入
和
显示
均是 *
ui->
line
Edit
_3->setEchoMode(Q
Line
Edit
::Password);
//设置
输入
时为*,编辑后
显示
*
ui->
line
Edit
_3->setEchoMode(Q
Line
Edit
::PasswordEchoOn
Edit
);
方法2:在ui设计内设置
line
Edit
的...
line
Edit
.setEchoMode(Q
Line
Edit
.Password)
import struct
from Py
Qt
5.
Qt
Widgets import (QMessageBox, Q
Line
Edit
)
from Py
Qt
5.
Qt
Gui import QPixmap
class LoginWindow(
Qt
Widgets.QWidget):
import struct
from Py
Qt
5.
Qt
Widgets import (QMessageBox, Q
Line
Edit
)
from Py
Qt
5.
Qt
Gui import QPixmap
{...}
class LoginWindow(
Qt
Widgets.QWidget):
{...}
def __init__(self):
super(LoginWindow, self).__init__()
# 加载ui文件
loadUi('login.ui
现在很多应用在
密码
输入
时,会先
显示
一段时间,大概几百毫秒,然后再变
成
星号
或者圆点隐藏起来。这样做的好处是,可以让
密码
输入
者看到自己
输入
的字符,同时又防止
密码
被偷窥。但是
Qt
自带的
密码
输入
框,要么
输入
时立即变
成
圆点,要么全部
输入
完后再一起变
成
圆点。
要实现先
显示
后隐藏的效果其实很简单,只需重载Q
Line
Edit
类,在连接光标位置变化信号(cursorPositionChanged)和
1.直接使用
Qt
提供的接口函数setEchoMode即可
ui->
line
Edit
->setEchoMode(Q
Line
Edit
::EchoMode::Password);
2.如果想
输入
的时候
显示
具体字符,焦点离开
输入
框时以
密码
格式
显示
,则如下设置
ui->
line
Edit
->setEchoMode(Q
Line
Edit
::EchoMode::PasswordEchoOn
Edit
);
3.默认的
密码
格式都是如上图,那么如何改变这个格式呢???
通过查阅官方QSS文档可知是通
** void setEchoMode(EchoMode)** 设置
密码
显示
Q
Line
Edit
::Password :
输入
时用指定字符
显示
用户
输入
默认实心圆点
Q
Line
Edit
::PasswordEchoOn
Edit
:
输入
完
成
失去焦点/回车后用指定字符
显示
用户
输入
默认实心圆点
二、样式修改
Q
Line
Edit
密码
样式使用 Unicode 字符表示,
密码
样式修改在Q
Line
Edit
::Password 、Q
Line
Edit
::Pas