3. 使用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绘制界面
- 启动Qt Designer,创建
Main Window模板。 - 从左侧拖入两个
Label(文本分别设为“用户名”和“密码”)、两个Line Edit(分别命名为username_edit和password_edit)、一个Push Button(文本设为“登录”,命名为login_btn)。 - 将
password_edit的echoMode属性设为Password。 - 保存为
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位于同一目录下。
验证方法
- 窗口正常显示,包含两个输入框和一个登录按钮。
- 输入
admin/123456,点击“登录”,弹出“登录成功”对话框。 - 输入其他任意组合,点击“登录”,弹出“登录失败”对话框。
- 密码输入框内容显示为圆点(掩码效果)。
常见问题
- 找不到
login.ui:确认文件路径正确,或改用路径。 - 控件名不匹配:在Qt Designer中选中控件,检查
objectName是否与代码中一致(username_edit、password_edit、login_btn)。 - PySide6未安装:执行
pip install PySide6。
上述SVG展示了界面布局与验证逻辑的对应关系,实际运行效果以Qt渲染为准。