📜  pyqt5 行编辑密码输入 - Python (1)

📅  最后修改于: 2023-12-03 15:18:50.554000             🧑  作者: Mango

Pyqt5 行编辑密码输入 - Python

在PyQt5中通常使用 QLineEdit 来获取用户的文本输入,但是有些场景需要用户输入密码,此时就需要使用 QLineEdit 的密码模式。我们来看看如何实现密码输入框的创建和使用。

创建密码输入框

我们可以将 QLineEditechoMode 属性设为 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()

上面的代码可以获取到用户输入的密码明文。

总结

通过将 QLineEditechoMode 属性设为 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_()