from pyqt5.qt import *
import sys
import math
class accounttool:#帳戶判定類
account_error=1
pwd_error=2
success=3
@staticmethod#定義靜態方法
def check_login(account,pwd):
#把帳號和密碼傳送給伺服器,等待伺服器返回結果
if account!="kaixinde101":
return accounttool.account_error
elif pwd!="12345678":
return accounttool.pwd_error
else:
return accounttool.success
class window(qwidget):
def __init__(self):
super().__init__()
self.setwindowtitle("登陸介面")
self.setwindowicon(qicon("d:\ico\ooopic_1552382147.ico"))
self.resize(500,200)
# self.password="12345678"
# self.username="kaixinde101"
self.co_width=40
self.co_heigth=20
self.setminimumsize(500,200)#設定最小尺寸500*200
self.setmaximumsize(500,200)#設定最大尺寸500*200
self.setup_ui()
def setup_ui(self):
self.lab_l=qlabel("帳戶:",self)#帳戶標籤
self.lin_l=qlineedit(self)#帳戶錄入框
self.lab_account_error=qlabel(self)#帳戶錄入報錯標籤
self.lab_p=qlabel("密碼:",self)#密碼標籤
self.lin_p=qlineedit(self)#密碼錄入框
self.lin_p.setechomode(qlineedit.password)#設定密文顯示
self.lab_password_error=qlabel(self)#密碼錄入報錯標籤
self.pu_l=qpushbutton(qicon("d:\ico\ooopic_1556416225.ico"),"登陸&l",self)#登陸按鈕
self.login_success=qlabel(self)#登陸結果
self.pu_l.clicked.connect(self.login)
self.lin_l.textchanged.connect(self.cls_err_show)#帳戶登內容改變
self.lin_p.textchanged.connect(self.cls_err_show)#密碼登內容改變
#self.lab_l.keypressevent()
#self.lin_l.keypressevent(lambda:self.lin_p.setfocus())#鍵盤按下切換焦點
def resizeevent(self, evt):#重新設定控制項座標事件
#帳戶標籤
self.lab_l.resize(self.co_width,self.co_heigth)
self.lab_l.move(self.width()/3,self.height()/5)
#帳戶錄入框
self.lin_l.move(self.lab_l.x()+self.lab_l.width(),self.lab_l.y())
#帳戶報錯提示框
self.lab_account_error.resize(100,20)
self.lab_account_error.move(self.lin_l.x(),self.lin_l.y()+self.lin_l.height()/1.3)
#密碼標籤
self.lab_p.resize(self.co_width,self.co_heigth)
self.lab_p.move(self.lab_l.x(),self.lab_l.y()+self.lab_l.height()*2.2)
#密碼錄入框
self.lin_p.move(self.lab_p.x()+self.lab_p.width(),self.lab_p.y())
#密碼報錯提示框
self.lab_password_error.resize(100,20)
self.lab_password_error.move(self.lin_p.x(),self.lin_p.y()+self.lin_p.height()/1.3)
#登陸按鈕
self.pu_l.move(self.lin_p.x()+self.lin_p.width()/4,self.lab_p.y()+self.lab_p.height()*2.2)
#登陸結果
self.login_success.resize(100,20)
self.login_success.move(self.lin_p.x(),self.pu_l.y()+self.pu_l.height())
def login(self):
state=accounttool.check_login(self.lin_l.text(),self.lin_p.text())
if state==accounttool.account_error:
self.lin_l.settext("")
self.lin_p.settext("")
self.lin_l.setfocus()#設定焦點
#self.lab_account_error.setstylesheet("background-color:red;")#設定背景顏色為紅色
self.lab_account_error.setstylesheet("color:red;")#設定字型顏色為紅色
self.lab_account_error.settext("帳戶錄入錯誤!!")
#print("帳戶錄入錯誤!!")
elif state==accounttool.pwd_error:
self.lin_p.settext("")
#self.lab_password_error.setstylesheet("background-color:red;")#設定背景顏色為紅色
self.lab_password_error.setstylesheet("color:red;")#設定字型顏色為紅色
self.lab_password_error.settext("密碼錄入錯誤!!")
#print("密碼錄入錯誤!!")
self.lin_p.setfocus()#設定焦點
elif state==accounttool.success:
#self.login_success.setstylesheet("background-color:green;")#設定背景顏色為綠色
self.login_success.setstylesheet("color:green;")#設定字型顏色為綠色
self.login_success.settext("登陸成功!!")
#print("登陸成功!!")
def cls_err_show(self):
self.lab_account_error.settext("")
self.lab_password_error.settext("")
self.login_success.settext("")
#self.lab_password_error.setstylesheet("background-color:white;")#設定密碼提示框背景顏色為白色
#self.lab_account_error.setstylesheet("background-color:white;")#設定帳戶提示框背景顏色為白色
#self.login_success.setstylesheet("background-color:white;")#設定登陸提示框背景顏色為白色
# if (self.lin_l.text()==self.username and self.lin_p.text()==self.password):
# print("登陸成功!!")
# elif(self.lin_l.text()!=self.username):
# self.lin_l.settext("")
# self.lin_p.settext("")
# self.lin_l.setfocus()#設定焦點
# print("帳戶錄入錯誤!!")
# elif(self.lin_p.text()!=self.password):
# self.lin_p.settext("")
# print("密碼錄入錯誤!!")
# self.lin_p.setfocus()#設定焦點
PyQt5 登陸介面
self.setwindowtitle 登陸介面 self.setwindowicon qicon d ico ooopic 1552382147.ico self.resize 500,200 self.password 12345678 self.username kaixinde101 sel...
PyQt5教程 03 工具提示
下面的程式將教會我們如何使用控制項的工具提示功能。usr bin python3 coding utf 8 pyqt5 教程 這個例子顯示了視窗和按鈕氣泡工具提示。部落格 import sys qtooltip,qpushbutton from pyqt5.qtgui import qfont cl...
PyQt5簡單小工具製作步驟
學了幾個月的python了,突然想做點自己的工具,想起自己以前用qt寫c 的gui的時候,記得用pyqt可以寫gui,就學了一周。把基本的東西都看了一遍,感覺和qt差不多!但是pyqt5 的中文資料少的可憐啊!如果又想學的朋友可以參考下我的這個小工具製作過程!先看 import sys from p...