使用 Python 的 GUI 库 PyQt5 实现登陆界面的可视化

该文章描述了一个使用Python和Qt库创建的可视化登录界面,用户需先选择manager或clerk身份,然后输入对应的用户名和密码。登录成功后,程序会显示file.txt的内容。界面使用了QComboBox创建身份选择,QLineEdit设置密码输入模式,并通过QMessageBox展示登录成功或失败的消息。
摘要由CSDN通过智能技术生成

功能

pyhton可视化的登陆界面,要求:先选择身份是manager还是clerk,在进行用户名和密码的输入,登陆成功后提示并跳转另一窗口显示file.txt文件内容
manager : (admin, 123456)
clerk : (user, 123456)

过程

1. 设置主窗口大小和标题

self.setGeometry(500, 200, 600, 400)
self.setWindowTitle('Login')

2. 创建身份选择控件

self.identity_label = QLabel('Identity: ')
self.identity_input = QComboBox()
self.identity_input.addItem('manager')
self.identity_input.addItem('clerk')

3. 创建用户名和密码输入控件

self.user_label = QLabel('Username: ')
self.user_input = QLineEdit()
self.pass_label = QLabel('Password: ')
self.pass_input = QLineEdit()
self.pass_input.setEchoMode(QLineEdit.Password)

函数setEchoMode()

功能:定义输入模式
示例:

self.pass_label = QLabel('Password: ')
        self.pass_input = QLineEdit()
        self.pass_input.setEchoMode(QLineEdit.Password)  # 设置密码输入框的显示模式为密码模式

这段代码是用来设置密码输入框的显示模式的,它将密码输入框的显示模式设置为密码模式,这意味着输入的字符将被替换为密码符号(例如星号 *),以保护用户的密码安全。

  • setEchoMode() 方法的参数的三个模式

(1) QLineEdit.Normal 表示正常模式,输入的字符会直接显示在输入框中;
(2) QLineEdit.Password 表示密码模式,输入的字符会被替换为密码符号;
(3) QLineEdit.NoEcho 表示隐私模式,输入的字符不会显示在输入框中,用于输入一些敏感信息或密码确认等场合。

4. 创建登陆的按钮

self.signin = QPushButton('Sign In')
self.signin.clicked.connect(self.check_login)

# 实现登陆功能
def check_login(self):
    # 获取身份、用户名和密码
    identity = self.identity_input.currentText()
    username = self.user_input.text()
    password = self.pass_input.text()

    # 判断身份、用户名和密码是否正确
    if identity == 'manager' and username == 'admin' and password == '123456':
        # 登录成功
        QMessageBox.information(self, 'Success', 'Login Successful')

        # 显示文件信息窗口
        self.hide()
        self.file_window = FileWindow()
        self.file_window.show()

    elif identity == 'clerk' and username == 'user' and password == '123456':
        # 登录成功
        QMessageBox.information(self, 'Success', 'Login Successful')

        # 显示文件信息窗口
        self.hide()
        self.file_window = FileWindow()
        self.file_window.show()
    else:
        # 登录失败
        QMessageBox.warning(self, 'Error', 'Invalid username or password')

# 定义文件信息窗口类
class FileWindow(QWidget):
    def __init__(self):
        super().__init__()

        # 读取文件内容
        with open('file.txt', 'r') as f:
            file_content = f.read()

        # 创建显示文件内容的控件
        self.file_label = QLabel('File info:')
        self.file_info = QTextEdit()
        self.file_info.setText(file_content)

        # 创建返回按钮
        self.logout = QPushButton('Log out')
        self.logout.clicked.connect(self.return_to_login)

        # 创建布局和添加控件
        vbox = QVBoxLayout()
        vbox.addWidget(self.file_label)
        vbox.addWidget(self.file_info)
        vbox.addWidget(self.logout)
        self.setLayout(vbox)

    # 返回登录窗口
    def return_to_login(self):
        self.hide()
        self.login_window = LoginWindow()
        self.login_window.show()

5. 创建布局和添加控件

vbox = QVBoxLayout()
hbox1 = QHBoxLayout()
hbox1.addWidget(self.identity_label)
hbox1.addWidget(self.identity_input)
vbox.addLayout(hbox1)
hbox2 = QHBoxLayout()
hbox2.addWidget(self.user_label)
hbox2.addWidget(self.user_input)
vbox.addLayout(hbox2)
hbox3 = QHBoxLayout()
hbox3.addWidget(self.pass_label)
hbox3.addWidget(self.pass_input)
vbox.addLayout(hbox3)
vbox.addWidget(self.signin)
self.setLayout(vbox)

6. 定义主函数

if __name__ == '__main__':
    app = QApplication(sys.argv)
    login = LoginWindow()
    login.show()
    sys.exit(app.exec_())

效果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值