login.py
import sys
from PyQt5 import QtWidgets, QtCore
from PyQt5.QtWidgets import QMessageBox
import ui_login
import main
class frmLogin(QtWidgets.QWidget, ui_login.Ui_frmLogin):
def __init__(self):
super(frmLogin, self).__init__()
self.setupUi(self)
self.setWindowFlags(QtCore.Qt.WindowMinimizeButtonHint) #禁止最大化按鈕
# 創建槽函數 槽函數直接使用元件的名稱:on_元件名稱_信號名稱(槽裝飾器, 區分參數)
@QtCore.pyqtSlot() #@QtCore.pyqtSlot(bool)
def on_btnLogin_clicked(self): #自動對應click
user = self.edtUser.text().strip()
passwd = self.edtPasswd.text().strip()
if user == "":
QMessageBox.warning(self,"警告","用戶號不能為空,請輸入!")
return
if passwd == "":
QMessageBox.warning(self,"警告","密碼不能為空,請輸入!")
return
if len(user) != 7:
QMessageBox.warning(self,"警告","用戶號長度必須為7位!")
return
if len(passwd) < 6:
QMessageBox.warning(self,"警告","密碼長度不能小於6位!")
return
if passwd != '123456':
QMessageBox.warning(self,"警告","密碼不符無法登陸!")
return
frmMain.show() #打開新窗口
self.close() #關閉本窗口
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
frmLogin = frmLogin()
frmMain = main.frmMain()
frmLogin.show()
sys.exit(app.exec_())
--------------------------------------------------------------------------
main.py
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QMessageBox
from PyQt5.QtCore import Qt
import ui_main
class frmMain(QtWidgets.QMainWindow, ui_main.Ui_frmMain):
def __init__(self):
super(frmMain, self).__init__()
self.setupUi(self)
def closeEvent(self, event):
reply = QMessageBox.question(self,'提示信息',"您是否退出程序?", QMessageBox.Yes | QMessageBox.No, QMessageBox.No)
if reply == QMessageBox.Yes:
event.accept()
else:
event.ignore()
def keyPressEvent(self, e):
if e.key() == Qt.Key_Escape:
self.close()