qt setEchoMode
setEchoMode
是 Qt 框架中 QLineEdit
类的一个函数,用于设置文本框中输入的内容是否回显。它有以下几种模式:
QLineEdit.Normal
:默认模式,输入的字符将会回显。QLineEdit.NoEcho
:输入的字符将不会回显,常用于密码等敏感信息的输入。QLineEdit.Password
:输入的字符将会被掩盖,以密文形式显示。QLineEdit.PasswordEchoOnEdit
:输入的字符在编辑时将会被掩盖,但在输入完成后会以密文形式显示。
通过调用 setEchoMode
函数并传入上述模式之一,即可设置文本框的回显模式。
from PyQt5 import QtWidgets, QtSql import sys class Login(QtWidgets.QWidget): def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 创建控件 self.username = QtWidgets.QLineEdit() self.password = QtWidgets.QLineEdit() self.password.setEchoMode(QtWidgets.QLineEdit.Password) self.login_btn = QtWidgets.QPushButton('登录') # 创建布局 layout = QtWidgets.QVBoxLayout() layout.addWidget(QtWidgets.QLabel('用户名')) layout.addWidget(self.username) layout.addWidget(QtWidgets.QLabel('密码')) layout.addWidget(self.password) layout.addWidget(self.login_btn) # 设 置布局 self.setLayout(layout) # 链接数据库 db = QtSql.QSqlDatabase.addDatabase('QSQLITE') db.setDatabaseName('test.db') if not db.open(): QtWidgets.QMessageBox.critical(None, "无法打开数据库", "无法建立到数据库的连接,这个例子需要SQLite支 持,请检查数据库配置\n\n" "点击取消退出应用程序", QtWidgets. QMessageBox.Cancel) return # 创建表格 query = QtSql.QSqlQuery() query.exec_("create table user (id int primary key, username varchar(20), password varchar(20))") query.exec_("insert into user values(1, 'admin', 'admin')") # 链接信号和槽 self.login_btn.clicked.connect(self.login) def login(self): username = self.username.text().strip() password = self.password.text().strip() # 验证用户名和密码 query = QtSql.QSqlQuery() sql = "select * from user where username='{0}' and password='{1}'".format(username, password) query.exec_(sql) if query.next(): QtWidgets.QMessageBox.information(None, '登录成功 ', '登录成功') else: QtWidgets.QMessageBox.warning(None, '登录失败', '用户名或密码错误') if __name__ == '__main__': app = QtWidgets.QApplication(sys.argv) window = Login() window.show() sys.exit(app.exec_())
这是一个使用PyQt5连接SQLite数据库实现登录功能的示例代码。代码中通过创建控件、布局以及链接信号和槽等方式实现了一个简单的登录界面。其中,通过QtSql模块连接SQLite数据库,并创建了一个名为"user"的表格,用于存储用户信息。在登录时,通过查询用户输入的用户名和密码是否在数据库中存在来验证用户身份,并弹出相应的提示框。
qt QLineEdit
Qt 中 QLineEdit 组件的使用方法及属性介绍
QLineEdit 简介
QLineEdit
是用于编辑单行文本的小部件,在用户界面中非常常见。它提供了多种功能来处理输入验证、回显模式以及附加操作按钮等功能[^1]。
常见属性与方法
文本设置与获取
可以利用 setText(const QString &)
方法设定显示的文字内容;而通过调用 text()
函数则能读取当前所含有的字符串数据。
回显模式控制
为了适应不同场景下的需求,比如密码输入框不希望明文展示字符,这时就可以调整其回显方式。具体来说,有如下几种选项可供选择:
- Normal:正常情况下会如实呈现键入的内容;
- NoEcho:完全隐藏任何已录入的信息;
- Password:以掩码形式代替实际字母数字等符号;
- PasswordEchoOnEdit:当正在打字时短暂可见之后迅速转换成星号(*)表示[^2]。
可以通过下面这段代码实现对上述特性的编程访问:
// 设置回显模式为密码型态
lineEdit->setEchoMode(QLineEdit::Password);
占位提示文字
为了让用户体验更友好,可以在未填写状态下给出一些指导说明作为占位符。这借助于 setPlaceholderText(const QString&)
实现[^3]:
ui->lineEdit_6->setPlaceholderText("请输入用户名");
动作(Action)添加
有时需要在线条两端放置图标按钮以便执行特定命令或是提供额外交互手段。此时可运用 addAction(QAction*, Position)
来完成此目的:
QAction *leadingAction = new QAction(this);
leadingAction->setIcon(QIcon(":/icons/search.png"));
ui->lineEdit_6->addAction(leadingAction, QLineEdit::LeadingPosition);
QAction *trailingAction = new QAction(this);
trailingAction->setIcon(QIcon(":/icons/clear.png"));
ui->lineEdit_6->addAction(trailingAction, QLineEdit::TrailingPosition);
以上就是有关于 Qt 下如何应用 QLineEdit
的基本指南及其部分重要特性概述。