工控上位机控制系统通用UI框架
This commit is contained in:
110
wndMain/pagePasswdChange/sub_uiPasswdChange.py
Normal file
110
wndMain/pagePasswdChange/sub_uiPasswdChange.py
Normal file
@ -0,0 +1,110 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
# @Time : 2026/3/4 11:14
|
||||
# @Author : reenrr
|
||||
# @File : sub_uiPasswdChange.py
|
||||
# @Desc : 密码修改界面的功能逻辑
|
||||
"""
|
||||
# 设备调试内嵌页面子类
|
||||
from re import T
|
||||
from PySide6.QtWidgets import QWidget, QMessageBox, QDialog
|
||||
from PySide6.QtCore import Qt, Slot
|
||||
from wndMain.pagePasswdChange.uiPasswdChange import Ui_dlgChangePasswd
|
||||
from msg_dict import g_uiGeometrySize
|
||||
from dbCtrl.clsUserTb import g_userCtrl
|
||||
|
||||
class CPasswdChange(QDialog):
|
||||
# public:
|
||||
def __init__(self, userID: str, widgetSize: tuple[int, int]=(375, 293), parent=None):
|
||||
super().__init__(parent)
|
||||
self.ui = Ui_dlgChangePasswd()
|
||||
self.ui.setupUi(self)
|
||||
# 按需声明对应的成员变量
|
||||
self.szStack = widgetSize
|
||||
self.user = userID
|
||||
|
||||
pass
|
||||
|
||||
# 界面初始化
|
||||
def uiInit(self) -> None:
|
||||
|
||||
self._screenAdapter() # 界面自适应
|
||||
# self._changeWndStyle() # 设置成无框架边框
|
||||
self._centerWidget() # 居中显示
|
||||
|
||||
self._setCurrentUser() # 设置当前用户
|
||||
self._setupSignalSlotMapping() # 创建信号映射
|
||||
|
||||
pass
|
||||
|
||||
# ----------------------------------------
|
||||
# private:
|
||||
# 界面自适应
|
||||
def _screenAdapter(self) -> None:
|
||||
self.resize(self.szStack[0], self.szStack[1])
|
||||
# self.ui.widgetPasswdChange.setGeometry(g_uiGeometrySize['WND_MARGIN_HORI'], g_uiGeometrySize['WND_MARGIN_VERT'],
|
||||
# self.szStack[0] - g_uiGeometrySize['WND_MARGIN_HORI'] * 2,
|
||||
# self.szStack[1] - g_uiGeometrySize['WND_MARGIN_VERT'] * 2)
|
||||
pass
|
||||
|
||||
# 修改窗体属性
|
||||
def _changeWndStyle(self) -> None:
|
||||
self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
|
||||
pass
|
||||
|
||||
# 窗口居中显示
|
||||
def _centerWidget(self) -> None:
|
||||
pass
|
||||
|
||||
# 设置当前用户
|
||||
def _setCurrentUser(self) -> None:
|
||||
self.ui.edtCurrentUser_PasswdChg.setText(self.user)
|
||||
pass
|
||||
|
||||
def _setNewPasswd(self) -> None:
|
||||
# 获取输入的密码
|
||||
origin_passwd = self.ui.edtOrigin_PasswdChg.text() # 原密码
|
||||
new_passwd = self.ui.edtNew_PasswdChg.text() # 新密码
|
||||
confirm_passwd = self.ui.edtConf_PasswdChg.text() # 确认密码
|
||||
|
||||
# 验证输入
|
||||
if not origin_passwd or not new_passwd or not confirm_passwd:
|
||||
QMessageBox.warning(self, "提示", "请填写完整密码信息")
|
||||
return
|
||||
|
||||
# 验证原密码是否正确
|
||||
current_user = self.user
|
||||
stored_passwd = g_userCtrl.getPasswdByUserID(current_user)
|
||||
if origin_passwd != stored_passwd:
|
||||
QMessageBox.warning(self, "提示", "原密码错误")
|
||||
return
|
||||
|
||||
# 验证新密码和确认密码是否一致
|
||||
if new_passwd != confirm_passwd:
|
||||
QMessageBox.warning(self, "提示", "新密码和确认密码不一致")
|
||||
return
|
||||
|
||||
# 更新密码
|
||||
success = g_userCtrl.changePasswd(current_user, new_passwd)
|
||||
if success:
|
||||
QMessageBox.information(self, "提示", "密码修改成功")
|
||||
return True
|
||||
else:
|
||||
QMessageBox.warning(self, "提示", "密码修改失败")
|
||||
return False
|
||||
|
||||
|
||||
# 建立信号槽连接
|
||||
def _setupSignalSlotMapping(self) -> None:
|
||||
self.ui.btnDecide_PasswdChg.clicked.connect(self._confChangePasswd)
|
||||
|
||||
# ----------------信号槽接口----------------
|
||||
@Slot()
|
||||
def _confChangePasswd(self) -> None:
|
||||
success = self._setNewPasswd()
|
||||
# 仅在密码修改成功时关闭窗口
|
||||
if success:
|
||||
self.close()
|
||||
pass
|
||||
|
||||
Reference in New Issue
Block a user