220 lines
6.8 KiB
Python
220 lines
6.8 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
简化的维修系统登录界面
|
|
解决显示和输入问题
|
|
"""
|
|
|
|
from PyQt5.QtWidgets import (
|
|
QDialog, QVBoxLayout, QHBoxLayout, QFormLayout, QGroupBox,
|
|
QLineEdit, QPushButton, QLabel, QMessageBox
|
|
)
|
|
from PyQt5.QtCore import Qt, pyqtSignal
|
|
|
|
|
|
class SimpleMaintenanceLoginDialog(QDialog):
|
|
"""简化的维修系统登录对话框"""
|
|
|
|
login_success = pyqtSignal() # 登录成功信号
|
|
|
|
def __init__(self, parent=None):
|
|
super().__init__(parent)
|
|
self.setupUI()
|
|
|
|
def setupUI(self):
|
|
"""设置用户界面"""
|
|
self.setWindowTitle("维修系统 - 登录")
|
|
self.resize(400, 250)
|
|
self.setModal(True)
|
|
|
|
# 设置简洁的样式
|
|
self.setStyleSheet("""
|
|
QDialog {
|
|
background-color: #ffffff;
|
|
font-family: "Microsoft YaHei", Arial, sans-serif;
|
|
}
|
|
QGroupBox {
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
color: #2c3e50;
|
|
border: 2px solid #bdc3c7;
|
|
border-radius: 5px;
|
|
margin-top: 10px;
|
|
padding-top: 10px;
|
|
}
|
|
QGroupBox::title {
|
|
subcontrol-origin: margin;
|
|
left: 10px;
|
|
padding: 0 5px;
|
|
}
|
|
QLabel {
|
|
color: #2c3e50;
|
|
font-size: 14px;
|
|
}
|
|
QLineEdit {
|
|
background-color: #ffffff;
|
|
border: 2px solid #bdc3c7;
|
|
border-radius: 3px;
|
|
padding: 6px 8px;
|
|
font-size: 14px;
|
|
color: #2c3e50;
|
|
min-height: 16px;
|
|
}
|
|
QLineEdit:focus {
|
|
border-color: #3498db;
|
|
background-color: #ffffff;
|
|
}
|
|
QPushButton {
|
|
background-color: #3498db;
|
|
color: white;
|
|
border: none;
|
|
padding: 8px 20px;
|
|
border-radius: 3px;
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
min-height: 16px;
|
|
}
|
|
QPushButton:hover {
|
|
background-color: #2980b9;
|
|
}
|
|
QPushButton:pressed {
|
|
background-color: #21618c;
|
|
}
|
|
QPushButton#cancel_btn {
|
|
background-color: #95a5a6;
|
|
}
|
|
QPushButton#cancel_btn:hover {
|
|
background-color: #7f8c8d;
|
|
}
|
|
""")
|
|
|
|
# 主布局
|
|
main_layout = QVBoxLayout(self)
|
|
main_layout.setSpacing(20)
|
|
main_layout.setContentsMargins(30, 30, 30, 30)
|
|
|
|
# 标题
|
|
title_label = QLabel("🔧 维修系统")
|
|
title_label.setAlignment(Qt.AlignCenter)
|
|
title_label.setStyleSheet("""
|
|
font-size: 18px;
|
|
font-weight: bold;
|
|
color: #2c3e50;
|
|
margin: 10px 0px;
|
|
""")
|
|
main_layout.addWidget(title_label)
|
|
|
|
# 登录表单组
|
|
form_group = QGroupBox("身份验证")
|
|
form_layout = QFormLayout(form_group)
|
|
form_layout.setSpacing(15)
|
|
form_layout.setContentsMargins(20, 20, 20, 20)
|
|
|
|
# 用户名输入框
|
|
self.username_edit = QLineEdit()
|
|
self.username_edit.setPlaceholderText("请输入用户名")
|
|
form_layout.addRow("用户名:", self.username_edit)
|
|
|
|
# 密码输入框
|
|
self.password_edit = QLineEdit()
|
|
self.password_edit.setEchoMode(QLineEdit.Password)
|
|
self.password_edit.setPlaceholderText("请输入密码")
|
|
form_layout.addRow("密码:", self.password_edit)
|
|
|
|
main_layout.addWidget(form_group)
|
|
|
|
# 提示信息
|
|
hint_label = QLabel("💡 默认账号密码均为: admin")
|
|
hint_label.setAlignment(Qt.AlignCenter)
|
|
hint_label.setStyleSheet("""
|
|
color: #7f8c8d;
|
|
font-size: 12px;
|
|
margin: 5px 0px;
|
|
""")
|
|
main_layout.addWidget(hint_label)
|
|
|
|
# 按钮布局
|
|
button_layout = QHBoxLayout()
|
|
button_layout.setSpacing(10)
|
|
|
|
self.cancel_btn = QPushButton("取消")
|
|
self.cancel_btn.setObjectName("cancel_btn")
|
|
|
|
self.login_btn = QPushButton("登录")
|
|
|
|
button_layout.addStretch()
|
|
button_layout.addWidget(self.cancel_btn)
|
|
button_layout.addWidget(self.login_btn)
|
|
|
|
main_layout.addLayout(button_layout)
|
|
|
|
# 连接信号
|
|
self.login_btn.clicked.connect(self.handle_login)
|
|
self.cancel_btn.clicked.connect(self.reject)
|
|
self.password_edit.returnPressed.connect(self.handle_login)
|
|
|
|
# 设置焦点和Tab顺序
|
|
self.username_edit.setFocus()
|
|
self.setTabOrder(self.username_edit, self.password_edit)
|
|
self.setTabOrder(self.password_edit, self.login_btn)
|
|
self.setTabOrder(self.login_btn, self.cancel_btn)
|
|
|
|
print("✅ 简化登录界面创建完成")
|
|
print(f"📝 窗口大小: {self.size().width()}x{self.size().height()}")
|
|
|
|
def handle_login(self):
|
|
"""处理登录"""
|
|
username = self.username_edit.text().strip()
|
|
password = self.password_edit.text().strip()
|
|
|
|
print(f"🔍 登录尝试: 用户名='{username}', 密码='{password}'")
|
|
|
|
# 验证账号密码
|
|
if username == "admin" and password == "admin":
|
|
print("✅ 登录验证成功")
|
|
self.login_success.emit()
|
|
self.accept()
|
|
else:
|
|
print("❌ 登录验证失败")
|
|
QMessageBox.warning(
|
|
self,
|
|
"登录失败",
|
|
"用户名或密码错误!\n\n请使用:\n用户名: admin\n密码: admin"
|
|
)
|
|
self.password_edit.clear()
|
|
self.password_edit.setFocus()
|
|
|
|
|
|
def test_simple_login():
|
|
"""测试简化登录界面"""
|
|
import sys
|
|
from PyQt5.QtWidgets import QApplication
|
|
|
|
print("🧪 测试简化登录界面")
|
|
print("=" * 30)
|
|
|
|
app = QApplication(sys.argv)
|
|
|
|
dialog = SimpleMaintenanceLoginDialog()
|
|
|
|
print("💡 请测试以下功能:")
|
|
print("1. 检查是否显示完整的登录界面")
|
|
print("2. 在用户名框输入 'admin'")
|
|
print("3. 在密码框输入 'admin'")
|
|
print("4. 点击登录按钮")
|
|
|
|
def on_success():
|
|
print("🎉 登录成功!")
|
|
QMessageBox.information(None, "成功", "登录测试成功!")
|
|
|
|
dialog.login_success.connect(on_success)
|
|
|
|
result = dialog.exec_()
|
|
print(f"📊 测试结果: {'成功' if result == QDialog.Accepted else '取消'}")
|
|
|
|
return result == QDialog.Accepted
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_simple_login() |