|
|
from PyQt5.QtGui import *
|
|
|
from PyQt5.QtCore import *
|
|
|
from PyQt5.QtWidgets import *
|
|
|
|
|
|
from controllers.caller_main import CallerMain
|
|
|
from views.Ui_login import Ui_win_Login
|
|
|
|
|
|
# login界面controller类
|
|
|
# 需要继承QWidget 如果是主窗体需要继承QMainWindow
|
|
|
|
|
|
|
|
|
class Login(QWidget):
|
|
|
def __init__(self):
|
|
|
# 这句一定要调用父类构造函数
|
|
|
super().__init__()
|
|
|
# 动态加载UI文件
|
|
|
self.ui = Ui_win_Login()
|
|
|
self.ui.setupUi(self)
|
|
|
|
|
|
self.setWindowFlag(Qt.FramelessWindowHint) # 去除边框
|
|
|
self.setAttribute(Qt.WA_TranslucentBackground) # 将界面属性设置为半透明
|
|
|
# 设定一个阴影:半径为10 颜色为#444 定位为0,0
|
|
|
self.shadow = QGraphicsDropShadowEffect()
|
|
|
self.shadow.setBlurRadius(10)
|
|
|
self.shadow.setColor(QColor('#444'))
|
|
|
self.shadow.setOffset(0, 0)
|
|
|
self.ui.f_login_main.setGraphicsEffect(self.shadow)
|
|
|
|
|
|
# 注册登录按钮事件
|
|
|
self.ui.btn_login.clicked.connect(self.login_action)
|
|
|
# 注册关闭程序按钮事件
|
|
|
self.ui.btn_close.clicked.connect(self.exit_action)
|
|
|
# 注册最小化窗口按钮事件
|
|
|
self.ui.btn_min.clicked.connect(self.min_action)
|
|
|
|
|
|
# 登录按钮事件
|
|
|
def login_action(self):
|
|
|
# 创建窗口选择界面对象
|
|
|
self.callerMain = CallerMain()
|
|
|
# 显示窗口选择界面
|
|
|
self.callerMain.show()
|
|
|
# 关闭登录界面
|
|
|
self.close()
|
|
|
# print('login success')
|
|
|
|
|
|
# 关闭按钮事件
|
|
|
def exit_action():
|
|
|
app = QApplication.instance()
|
|
|
app.quit()
|
|
|
|
|
|
# 最小化事件
|
|
|
def min_action(self):
|
|
|
self.showMinimized()
|
|
|
|
|
|
# 重写鼠标按下事件 左键按下时获取鼠标坐标,按下右键取消
|
|
|
def mousePressEvent(self, event):
|
|
|
if event.button() == Qt.LeftButton:
|
|
|
self.m_flag = True
|
|
|
self.m_Position = event.globalPos() - self.pos()
|
|
|
event.accept()
|
|
|
elif event.button() == Qt.RightButton:
|
|
|
self.m_flag = False
|
|
|
|
|
|
# 重写鼠标移动事件 在按下左键移动是根据坐标移动界面
|
|
|
def mouseMoveEvent(self, QMouseEvent):
|
|
|
if Qt.LeftButton and self.m_flag and self.ui.f_title.underMouse():
|
|
|
self.move(QMouseEvent.globalPos() - self.m_Position)
|
|
|
QMouseEvent.accept()
|
|
|
|
|
|
# 重写鼠标释放事件 当鼠标按键释放时 取消移动
|
|
|
def mouseReleaseEvent(self, QMouseEvent):
|
|
|
self.m_flag = False
|