3. 使用Qt Designer设计界面并加载

使用Qt Designer设计界面并加载 学习卡片

任务目标

使用Qt Designer绘制登录界面(用户名、密码输入框及登录按钮),保存为login.ui文件,在Python中通过PySide6加载该UI文件并显示窗口,同时实现简单的登录验证逻辑(用户名admin、密码123456时提示成功,否则提示失败)。

环境依赖

  • Python 3.9+
  • PySide6:pip install PySide6
  • Qt Designer:PySide6安装后自带,可通过python -m PySide6.designer启动

第一步:用Qt Designer绘制界面

  1. 启动Qt Designer,创建Main Window模板。
  2. 从左侧拖入两个Label(文本分别设为“用户名”和“密码”)、两个Line Edit(分别命名为username_edit和password_edit)、一个Push Button(文本设为“登录”,命名为login_btn)。
  3. 将password_edit的echoMode属性设为Password。
  4. 保存为login.ui文件。

第二步:Python加载并实现登录验证

创建main.py,使用QUiLoader动态加载.ui文件,连接按钮点击信号并执行验证逻辑:

import sys
from PySide6.QtWidgets import QApplication, QMessageBox
from PySide6.QtUiTools import QUiLoader
from PySide6.QtCore import QFile

class LoginWindow:
    def __init__(self):
        # 加载UI文件
        loader = QUiLoader()
        ui_file = QFile("login.ui")
        ui_file.open(QFile.ReadOnly)
        self.window = loader.load(ui_file)
        ui_file.close()

        # 绑定登录按钮事件
        self.window.login_btn.clicked.connect(self.check_login)

    def check_login(self):
        username = self.window.username_edit.text().strip()
        password = self.window.password_edit.text().strip()

        if username == "admin" and password == "123456":
            QMessageBox.information(self.window, "登录成功", "欢迎进入系统!")
        else:
            QMessageBox.warning(self.window, "登录失败", "用户名或密码错误")

    def show(self):
        self.window.show()

if __name__ == "__main__":
    app = QApplication(sys.argv)
    login_win = LoginWindow()
    login_win.show()
    sys.exit(app.exec())

运行方式

python main.py

确保main.py与login.ui位于同一目录下。

验证方法

  1. 窗口正常显示,包含两个输入框和一个登录按钮。
  2. 输入admin/123456,点击“登录”,弹出“登录成功”对话框。
  3. 输入其他任意组合,点击“登录”,弹出“登录失败”对话框。
  4. 密码输入框内容显示为圆点(掩码效果)。

常见问题

  • 找不到login.ui:确认文件路径正确,或改用路径。
  • 控件名不匹配:在Qt Designer中选中控件,检查objectName是否与代码中一致(username_edit、password_edit、login_btn)。
  • PySide6未安装:执行pip install PySide6。
登录窗口 用户名: admin 密 码: 登 录 验证逻辑: admin / 123456 → 成功

上述SVG展示了界面布局与验证逻辑的对应关系,实际运行效果以Qt渲染为准。