Instance
- Create a template window based on Dialog without Buttons
- Add five Labels, four LineEdits, and a PushButton component
- Set the text of the first three Labels to Enter database name, Enter table name, Email Address
- Set the text of the fourth Label to be empty, and the text of the fifth Label to Password
- Set the text of PushButton to Search
- 设定Line Edit的objectName为lineEditDBName, lineEditTableName, lineEditEmailAddress, lineEditPassword
- Set the objectName of PushButton to pushButtonSearch
- Set the object Name of the fourth Label to labelResponse
- Save as demoSearchRows.ui
- Use pyuic to generate demoSearchRows.py
- Create callSearchRows.py, the code is as follows
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())