实例
- 创建基于Dialog without Buttons模板窗口
- 添加三个Label,两个LineEdit,一个PushButton部件
- 设定前两个Label的text为Email Address, Password
- 设定第三个Label的text为空
- 设定PushButton的text为Sign In
- 设定Line Edit的objectName为lineEditEmailAddress, lineEditPassword
- 设定PushButton的objectName为pushButtonSearch
- 设定第三个Label的object Name为labelResponse
- 保存为demoSignInForm.ui
- 使用pyuic生成demoSignInForm.py
- 创建callSignInForm.py,代码如下
import sys,sqlite3
from PyQt5.QtWidgets import QDialog,QApplication
from sqlite3 import Error
from cookbook_200504.demoSearchRows import *
class MyForm(QDialog):
def __init__(self):
super().__init__()
self.ui=Ui_Dialog()
self.ui.setupUi(self)
self.ui.pushButtonSearch.clicked.connect(self.SearchRows)
self.show()
def SearchRows(self):
sqlStatement="SELECT Password FROM "+self.ui.lineEditTableName.text()+" WHERE EmailAddress LIKE'"+self.ui.lineEditEmailAddress.text()+"';"
try:
conn=sqlite3.connect(self.ui.lineEditDBName.text()+".db")
cur=conn.cursor()
cur.execute(sqlStatement)
row=cur.fetchone()
if row==None:
self.ui.labelResponse.setText("Sorry, No User found with this email address")
self.ui.lineEditPassword.setText("")
else:
self.ui.labelResponse.setText("Email Address Found, Password of this User is :")
self.ui.lineEditPassword.setText(row[0])
except Error as e:
self.ui.labelResponse.setText("Error in accessing row")
finally:
conn.close()
if __name__=="__main__":
app=QApplication(sys.argv)
w=MyForm()
w.show()
sys.exit(app.exec())