工控上位机控制系统通用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
|
||||
|
||||
77
wndMain/pagePasswdChange/uiPasswdChange.py
Normal file
77
wndMain/pagePasswdChange/uiPasswdChange.py
Normal file
@ -0,0 +1,77 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'uiPasswdChange.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.9.1
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale,
|
||||
QMetaObject, QObject, QPoint, QRect,
|
||||
QSize, QTime, QUrl, Qt)
|
||||
from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor,
|
||||
QFont, QFontDatabase, QGradient, QIcon,
|
||||
QImage, QKeySequence, QLinearGradient, QPainter,
|
||||
QPalette, QPixmap, QRadialGradient, QTransform)
|
||||
from PySide6.QtWidgets import (QApplication, QLabel, QLineEdit, QPushButton,
|
||||
QSizePolicy, QWidget)
|
||||
|
||||
class Ui_dlgChangePasswd(object):
|
||||
def setupUi(self, dlgChangePasswd):
|
||||
if not dlgChangePasswd.objectName():
|
||||
dlgChangePasswd.setObjectName(u"dlgChangePasswd")
|
||||
dlgChangePasswd.resize(375, 293)
|
||||
self.btnDecide_PasswdChg = QPushButton(dlgChangePasswd)
|
||||
self.btnDecide_PasswdChg.setObjectName(u"btnDecide_PasswdChg")
|
||||
self.btnDecide_PasswdChg.setGeometry(QRect(170, 220, 100, 41))
|
||||
self.btnDecide_PasswdChg.setCursor(QCursor(Qt.CursorShape.PointingHandCursor))
|
||||
self.edtOrigin_PasswdChg = QLineEdit(dlgChangePasswd)
|
||||
self.edtOrigin_PasswdChg.setObjectName(u"edtOrigin_PasswdChg")
|
||||
self.edtOrigin_PasswdChg.setGeometry(QRect(131, 79, 200, 21))
|
||||
self.edtOrigin_PasswdChg.setMaxLength(30)
|
||||
self.edtOrigin_PasswdChg.setEchoMode(QLineEdit.EchoMode.Password)
|
||||
self.edtConf_PasswdChg = QLineEdit(dlgChangePasswd)
|
||||
self.edtConf_PasswdChg.setObjectName(u"edtConf_PasswdChg")
|
||||
self.edtConf_PasswdChg.setGeometry(QRect(131, 178, 200, 21))
|
||||
self.edtConf_PasswdChg.setMaxLength(30)
|
||||
self.edtConf_PasswdChg.setEchoMode(QLineEdit.EchoMode.Password)
|
||||
self.lblConf_PasswdChg = QLabel(dlgChangePasswd)
|
||||
self.lblConf_PasswdChg.setObjectName(u"lblConf_PasswdChg")
|
||||
self.lblConf_PasswdChg.setGeometry(QRect(50, 180, 60, 16))
|
||||
self.lblCurrentUser_PasswdChg = QLabel(dlgChangePasswd)
|
||||
self.lblCurrentUser_PasswdChg.setObjectName(u"lblCurrentUser_PasswdChg")
|
||||
self.lblCurrentUser_PasswdChg.setGeometry(QRect(50, 35, 60, 16))
|
||||
self.edtNew_PasswdChg = QLineEdit(dlgChangePasswd)
|
||||
self.edtNew_PasswdChg.setObjectName(u"edtNew_PasswdChg")
|
||||
self.edtNew_PasswdChg.setGeometry(QRect(131, 128, 200, 21))
|
||||
self.edtNew_PasswdChg.setMaxLength(30)
|
||||
self.edtNew_PasswdChg.setEchoMode(QLineEdit.EchoMode.Password)
|
||||
self.edtCurrentUser_PasswdChg = QLineEdit(dlgChangePasswd)
|
||||
self.edtCurrentUser_PasswdChg.setObjectName(u"edtCurrentUser_PasswdChg")
|
||||
self.edtCurrentUser_PasswdChg.setEnabled(False)
|
||||
self.edtCurrentUser_PasswdChg.setGeometry(QRect(131, 33, 200, 21))
|
||||
self.edtCurrentUser_PasswdChg.setMaxLength(30)
|
||||
self.edtCurrentUser_PasswdChg.setReadOnly(True)
|
||||
self.lblNew_PasswdChg = QLabel(dlgChangePasswd)
|
||||
self.lblNew_PasswdChg.setObjectName(u"lblNew_PasswdChg")
|
||||
self.lblNew_PasswdChg.setGeometry(QRect(62, 131, 51, 16))
|
||||
self.lblOrigin_PasswdChg = QLabel(dlgChangePasswd)
|
||||
self.lblOrigin_PasswdChg.setObjectName(u"lblOrigin_PasswdChg")
|
||||
self.lblOrigin_PasswdChg.setGeometry(QRect(62, 82, 51, 16))
|
||||
|
||||
self.retranslateUi(dlgChangePasswd)
|
||||
|
||||
QMetaObject.connectSlotsByName(dlgChangePasswd)
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, dlgChangePasswd):
|
||||
dlgChangePasswd.setWindowTitle(QCoreApplication.translate("dlgChangePasswd", u"\u767b\u5f55\u5bc6\u7801\u4fee\u6539", None))
|
||||
self.btnDecide_PasswdChg.setText(QCoreApplication.translate("dlgChangePasswd", u"\u786e \u5b9a", None))
|
||||
self.lblConf_PasswdChg.setText(QCoreApplication.translate("dlgChangePasswd", u"\u5bc6\u7801\u786e\u8ba4\uff1a", None))
|
||||
self.lblCurrentUser_PasswdChg.setText(QCoreApplication.translate("dlgChangePasswd", u"\u5f53\u524d\u7528\u6237\uff1a", None))
|
||||
self.lblNew_PasswdChg.setText(QCoreApplication.translate("dlgChangePasswd", u"\u65b0\u5bc6\u7801\uff1a", None))
|
||||
self.lblOrigin_PasswdChg.setText(QCoreApplication.translate("dlgChangePasswd", u"\u539f\u5bc6\u7801\uff1a", None))
|
||||
# retranslateUi
|
||||
|
||||
Reference in New Issue
Block a user