📅  最后修改于: 2023-12-03 15:18:50.554000             🧑  作者: Mango
在PyQt5中通常使用 QLineEdit
来获取用户的文本输入,但是有些场景需要用户输入密码,此时就需要使用 QLineEdit
的密码模式。我们来看看如何实现密码输入框的创建和使用。
我们可以将 QLineEdit
的 echoMode
属性设为 QLineEdit.Password
来创建密码输入框。下面是示例代码:
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout
class PasswordInput(QWidget):
def __init__(self):
super().__init__()
# 创建标签和行编辑框
label = QLabel('请输入密码:')
self.lineEdit = QLineEdit()
self.lineEdit.setEchoMode(QLineEdit.Password) # 设置为密码输入模式
# 垂直布局添加控件
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(self.lineEdit)
self.setLayout(vbox)
if __name__ == '__main__':
app = QApplication([])
win = PasswordInput()
win.show()
app.exec_()
在示例代码的 __init__
方法中,我们创建了一个标签和一个行编辑框,并将它们添加到了一个垂直布局中。接着调用了 setEchoMode
方法将行编辑框设置为密码输入模式。
通过 QLineEdit.text()
方法可以获取用户输入的文本内容。但是在密码输入模式下获取的是加密的文本,需要通过 QLineEdit.text()
方法获取明文。
password = self.lineEdit.text()
上面的代码可以获取到用户输入的密码明文。
通过将 QLineEdit
的 echoMode
属性设为 QLineEdit.Password
,可以很方便地创建密码输入框。在密码输入模式下,获取用户输入需要通过 QLineEdit.text()
方法获取明文。
完整的示例代码见下:
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout
class PasswordInput(QWidget):
def __init__(self):
super().__init__()
# 创建标签和行编辑框
label = QLabel('请输入密码:')
self.lineEdit = QLineEdit()
self.lineEdit.setEchoMode(QLineEdit.Password) # 设置为密码输入模式
# 垂直布局添加控件
vbox = QVBoxLayout()
vbox.addWidget(label)
vbox.addWidget(self.lineEdit)
self.setLayout(vbox)
if __name__ == '__main__':
app = QApplication([])
win = PasswordInput()
win.show()
app.exec_()