欢迎访问宙启技术站
智能推送

在PyQt5中使用QDialog()实现登录对话框

发布时间:2023-12-16 11:09:07

在PyQt5中,可以使用QDialog类来实现登录对话框。QDialog是一个对话框窗口类,可以通过继承QDialog来创建自定义的对话框窗口。

下面是一个简单的使用QDialog实现登录对话框的例子:

from PyQt5.QtWidgets import QApplication, QDialog, QLabel, QLineEdit, QPushButton, QVBoxLayout
from PyQt5.QtGui import QFont

class LoginDialog(QDialog):
    def __init__(self):
        super().__init__()
        
        self.setWindowTitle("登录对话框")
        self.setFixedSize(250, 150)
        
        self.initUI()
    
    def initUI(self):
        layout = QVBoxLayout()
        
        username_label = QLabel("用户名")
        username_label.setFont(QFont("Arial", 12))
        layout.addWidget(username_label)
        
        self.username_input = QLineEdit()
        layout.addWidget(self.username_input)
        
        password_label = QLabel("密码")
        password_label.setFont(QFont("Arial", 12))
        layout.addWidget(password_label)
        
        self.password_input = QLineEdit()
        self.password_input.setEchoMode(QLineEdit.Password)
        layout.addWidget(self.password_input)
        
        login_button = QPushButton("登录")
        login_button.clicked.connect(self.login)
        layout.addWidget(login_button)
        
        self.setLayout(layout)
    
    def login(self):
        username = self.username_input.text()
        password = self.password_input.text()
        if username == "admin" and password == "password":
            print("登录成功")
        else:
            print("登录失败")
        
if __name__ == "__main__":
    app = QApplication([])
    
    login_dialog = LoginDialog()
    login_dialog.exec_()
    
    app.exec_()

在这个例子中,我们创建了一个继承自QDialog的LoginDialog类。在构造函数__init__()中,我们设置了对话框的标题和固定大小,并调用了initUI()方法来创建UI界面。

initUI()方法中,我们使用QVBoxLayout来布局对话框的控件。我们创建了两个QLabel控件用于显示"用户名"和"密码"的标签,两个QLineEdit控件用于输入用户名和密码,以及一个QPushButton用于登录。

在按钮的clicked信号与login方法连接的时候,当按钮被点击时,将会调用login方法。

login方法中,我们从用户名和密码输入框中获取输入的内容,然后进行简单的验证,如果输入的用户名是"admin",密码是"password",就输出"登录成功",否则输出"登录失败"。

if __name__ == "__main__":语句下面的代码中,我们创建了一个QApplication实例,然后创建LoginDialog实例,并调用exec_()方法来显示对话框。

最后,通过调用app.exec_()方法来启动应用程序的事件循环。在事件循环中,应用程序会监听并处理与用户交互相关的事件。

当运行这段代码时,将会弹出一个登录对话框。用户可以输入用户名和密码,然后点击登录按钮。如果输入的用户名是"admin",密码是"password",则显示"登录成功",否则显示"登录失败"。

这个例子只是一个简单的展示,实际上,你可以根据需求自定义登录对话框的样式和功能。