목차
0x00 머리말:
논리 코드 처리 과정에서 데이터 패킷의 요청을 추가하고 데이터 패킷의 판단을 반환하면 로그인 감지를 위한 인터페이스 도구가 완전히 실현될 수 있습니다.
1. UI를 로드할 준비가 되었습니다.
여기 늙은 배우
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi("./my_win.ui")
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.ui.show() # 展示窗口
sys.exit(app.exec_())
2. 해당 트리거 이벤트 획득
그림에서 알 수 있듯이
여기: self.ui가 최상위 레이어이고 다음은 컨트롤입니다.
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi("./my_win.ui")
# ————————————————————————————————————————————————————————————————————
# 与布局中控件相对应
# 获取对应触发事件
user_name = self.ui.lineEdit # 用户名
password = self.ui.lineEdit_2 # 获取密码
login_btn = self.ui.pushButton # 登录按钮
forget_btn = self.ui.pushButton_2 # 忘记密码
text_browser = self.ui.textBrowser # 文本显示区域
# ——————————————————————————————————————————————————————————————-——————
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.ui.show() # 展示窗口
sys.exit(app.exec_())
3. 트리거 이벤트 바인딩
1. 바인딩 트리거 이벤트 및 해당 로직
2. 논리 처리 함수 작성
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi("./my_win.ui")
# 获取对应触发事件
user_name = self.ui.lineEdit # 用户名
password = self.ui.lineEdit_2 # 获取密码
login_btn = self.ui.pushButton # 登录按钮
forget_btn = self.ui.pushButton_2 # 忘记密码
text_browser = self.ui.textBrowser # 文本显示区域
# —————————————————————————————————————————————————————————————————————
# 新增如下
# 绑定登陆事件的逻辑
login_btn.clicked.connect(self.login)
def login(self):
# 登录逻辑
print("正在登录中")
# ———————————————————————————————————————————————————————————————————————
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.ui.show() # 展示窗口
sys.exit(app.exec_())
세 번째, 입력 콘텐츠 호출
입력 상자의 콘텐츠를 가져와서 로그인 로직에서 호출하세요.
(실제로 로그인 로직에서 호출할 수 있다면 로직 코드를 이용해 계정 비밀번호가 맞는지 검출할 수 있다)
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi("./my_win.ui")
# 获取对应触发事件
# ————————————————————————————————————————————————————————————————————————
# 获取到用户输入
self.user_name = self.ui.lineEdit # 用户名
self.password = self.ui.lineEdit_2 # 获取密码
# ————————————————————————————————————————————————————————————————————————
login_btn = self.ui.pushButton # 登录按钮
forget_btn = self.ui.pushButton_2 # 忘记密码
text_browser = self.ui.textBrowser # 文本显示区域
# 绑定登陆事件的逻辑
login_btn.clicked.connect(self.login)
def login(self):
# 登录逻辑
print("正在登录中")
#————————————————————————————————————————————————————————————————————————
# 在其他部分调用(并转换格式)
print(self.user_name.text())
print(self.password.text())
#————————————————————————————————————————————————————————————————————————
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.ui.show() # 展示窗口
sys.exit(app.exec_())
3. 로그인 로직 개선
1. 관련 데이터 획득 개선
2. 로그인 로직 코드 개선
import sys
from PyQt5 import uic
from PyQt5.QtWidgets import *
class MyWindow(QWidget):
def __init__(self):
super().__init__()
self.init_ui()
def init_ui(self):
self.ui = uic.loadUi("./my_win.ui")
# ——————————————————————————————————————————————————————————————————————————
# 完善相关数据的获取
# 获取对应触发事件
self.user_name = self.ui.lineEdit # 用户名
self.password = self.ui.lineEdit_2 # 获取密码
self.login_btn = self.ui.pushButton # 登录按钮
self.forget_btn = self.ui.pushButton_2 # 忘记密码
self.text_browser = self.ui.textBrowser # 文本显示区域
#
# ——————————————————————————————————————————————————————————————————————————
# 绑定登陆事件的逻辑
self.login_btn.clicked.connect(self.login)
# ——————————————————————————————————————————————————————————————————————————
# 完善登录逻辑
def login(self):
# 登录逻辑
uname = self.user_name.text()
pw = self.password.text()
if uname == "admin" and pw == "123456":
self.text_browser.setText("欢迎%s回来" % uname)
self.text_browser.repaint()
else:
self.text_browser.setText("%s的用户名或密码错误" % uname)
self.text_browser.repaint()
#
# ——————————————————————————————————————————————————————————————————————————
if __name__ == '__main__':
app = QApplication(sys.argv)
w = MyWindow()
w.ui.show() # 展示窗口
sys.exit(app.exec_())
올바르게 로그인하세요
잘못된 로그인