Skip to content

Commit 1f0ec8c

Browse files
committed
Section-04 Completed
1 parent 28337d5 commit 1f0ec8c

5 files changed

+303
-84
lines changed
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
# Form implementation generated from reading ui file 'SearchData.ui'
2+
#
3+
# Created by: PyQt6 UI code generator 6.4.2
4+
#
5+
# WARNING: Any manual changes made to this file will be lost when pyuic6 is
6+
# run again. Do not edit this file unless you know what you are doing.
7+
8+
9+
from PyQt6 import QtCore, QtGui, QtWidgets
10+
import mysql.connector as mc
11+
12+
13+
class Ui_Form(object):
14+
def setupUi(self, Form):
15+
Form.setObjectName("Form")
16+
Form.resize(500, 450)
17+
self.formLayout = QtWidgets.QFormLayout(Form)
18+
self.formLayout.setObjectName("formLayout")
19+
self.label = QtWidgets.QLabel(parent=Form)
20+
font = QtGui.QFont()
21+
font.setPointSize(12)
22+
font.setBold(True)
23+
self.label.setFont(font)
24+
self.label.setAlignment(QtCore.Qt.AlignmentFlag.AlignCenter)
25+
self.label.setObjectName("label")
26+
self.formLayout.setWidget(0, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.label)
27+
self.label_dbname = QtWidgets.QLabel(parent=Form)
28+
font = QtGui.QFont()
29+
font.setBold(True)
30+
self.label_dbname.setFont(font)
31+
self.label_dbname.setObjectName("label_dbname")
32+
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_dbname)
33+
self.lineEdit_dbname = QtWidgets.QLineEdit(parent=Form)
34+
self.lineEdit_dbname.setObjectName("lineEdit_dbname")
35+
self.formLayout.setWidget(1, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_dbname)
36+
spacerItem = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Fixed)
37+
self.formLayout.setItem(2, QtWidgets.QFormLayout.ItemRole.FieldRole, spacerItem)
38+
self.label_tblname = QtWidgets.QLabel(parent=Form)
39+
font = QtGui.QFont()
40+
font.setBold(True)
41+
self.label_tblname.setFont(font)
42+
self.label_tblname.setObjectName("label_tblname")
43+
self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_tblname)
44+
self.lineEdit_tblname = QtWidgets.QLineEdit(parent=Form)
45+
self.lineEdit_tblname.setObjectName("lineEdit_tblname")
46+
self.formLayout.setWidget(3, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_tblname)
47+
spacerItem1 = QtWidgets.QSpacerItem(20, 10, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Fixed)
48+
self.formLayout.setItem(4, QtWidgets.QFormLayout.ItemRole.FieldRole, spacerItem1)
49+
self.label_username = QtWidgets.QLabel(parent=Form)
50+
font = QtGui.QFont()
51+
font.setBold(True)
52+
self.label_username.setFont(font)
53+
self.label_username.setObjectName("label_username")
54+
self.formLayout.setWidget(5, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_username)
55+
self.lineEdit_username = QtWidgets.QLineEdit(parent=Form)
56+
self.lineEdit_username.setObjectName("lineEdit_username")
57+
self.formLayout.setWidget(5, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_username)
58+
spacerItem2 = QtWidgets.QSpacerItem(0, 10, QtWidgets.QSizePolicy.Policy.Minimum, QtWidgets.QSizePolicy.Policy.Fixed)
59+
self.formLayout.setItem(6, QtWidgets.QFormLayout.ItemRole.FieldRole, spacerItem2)
60+
self.pushButton_search = QtWidgets.QPushButton(parent=Form)
61+
62+
#connect signal
63+
self.pushButton_search.clicked.connect(self.search_data)
64+
65+
66+
self.pushButton_search.setObjectName("pushButton_search")
67+
self.formLayout.setWidget(7, QtWidgets.QFormLayout.ItemRole.FieldRole, self.pushButton_search)
68+
self.label_password = QtWidgets.QLabel(parent=Form)
69+
font = QtGui.QFont()
70+
font.setBold(True)
71+
self.label_password.setFont(font)
72+
self.label_password.setObjectName("label_password")
73+
self.formLayout.setWidget(8, QtWidgets.QFormLayout.ItemRole.LabelRole, self.label_password)
74+
self.lineEdit_password = QtWidgets.QLineEdit(parent=Form)
75+
self.lineEdit_password.setObjectName("lineEdit_password")
76+
self.formLayout.setWidget(8, QtWidgets.QFormLayout.ItemRole.FieldRole, self.lineEdit_password)
77+
self.label_result = QtWidgets.QLabel(parent=Form)
78+
font = QtGui.QFont()
79+
font.setBold(True)
80+
self.label_result.setFont(font)
81+
self.label_result.setText("")
82+
self.label_result.setObjectName("label_result")
83+
self.formLayout.setWidget(9, QtWidgets.QFormLayout.ItemRole.SpanningRole, self.label_result)
84+
85+
self.retranslateUi(Form)
86+
QtCore.QMetaObject.connectSlotsByName(Form)
87+
88+
def search_data(self):
89+
dbname = self.lineEdit_dbname.text() # Get the text from the line edit widget
90+
try:
91+
mydb = mc.connect(
92+
host="localhost",
93+
user="root",
94+
password="",
95+
database=dbname
96+
)
97+
98+
query = "SELECT password FROM " + self.lineEdit_tblname.text() + " where username like '" + self.lineEdit_username.text() + "'"
99+
mycursor = mydb.cursor()
100+
mycursor.execute(query)
101+
102+
row = mycursor.fetchone()
103+
104+
if row is None:
105+
self.label_result.setText("No user found with this username")
106+
self.label_result.setStyleSheet("color: red")
107+
self.lineEdit_password.setText("")
108+
109+
else:
110+
self.label_result.setText("Username has been found")
111+
self.label_result.setStyleSheet("color: green")
112+
self.lineEdit_password.setText(row[0])
113+
114+
except mc.Error as e:
115+
self.label_result.setText("Error in connection")
116+
self.label_result.setStyleSheet("color: red")
117+
118+
119+
120+
121+
def retranslateUi(self, Form):
122+
_translate = QtCore.QCoreApplication.translate
123+
Form.setWindowTitle(_translate("Form", "Form"))
124+
self.label.setText(_translate("Form", "Search Data from Database"))
125+
self.label_dbname.setText(_translate("Form", "Database Name"))
126+
self.label_tblname.setText(_translate("Form", "Table Name"))
127+
self.label_username.setText(_translate("Form", "User Name"))
128+
self.pushButton_search.setText(_translate("Form", "Search Data"))
129+
self.label_password.setText(_translate("Form", "Password"))
130+
131+
132+
if __name__ == "__main__":
133+
import sys
134+
app = QtWidgets.QApplication(sys.argv)
135+
Form = QtWidgets.QWidget()
136+
ui = Ui_Form()
137+
ui.setupUi(Form)
138+
Form.show()
139+
sys.exit(app.exec())

Section-04/SearchData.ui

Lines changed: 0 additions & 84 deletions
This file was deleted.

Section-04/UI-04 SearchData.ui

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,164 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<ui version="4.0">
3+
<class>Form</class>
4+
<widget class="QWidget" name="Form">
5+
<property name="geometry">
6+
<rect>
7+
<x>0</x>
8+
<y>0</y>
9+
<width>500</width>
10+
<height>450</height>
11+
</rect>
12+
</property>
13+
<property name="windowTitle">
14+
<string>Form</string>
15+
</property>
16+
<layout class="QFormLayout" name="formLayout">
17+
<item row="0" column="0" colspan="2">
18+
<widget class="QLabel" name="label">
19+
<property name="font">
20+
<font>
21+
<pointsize>12</pointsize>
22+
<bold>true</bold>
23+
</font>
24+
</property>
25+
<property name="text">
26+
<string>Search Data from Database</string>
27+
</property>
28+
<property name="alignment">
29+
<set>Qt::AlignCenter</set>
30+
</property>
31+
</widget>
32+
</item>
33+
<item row="1" column="0">
34+
<widget class="QLabel" name="label_dbname">
35+
<property name="font">
36+
<font>
37+
<bold>true</bold>
38+
</font>
39+
</property>
40+
<property name="text">
41+
<string>Database Name</string>
42+
</property>
43+
</widget>
44+
</item>
45+
<item row="1" column="1">
46+
<widget class="QLineEdit" name="lineEdit_dbname"/>
47+
</item>
48+
<item row="2" column="1">
49+
<spacer name="verticalSpacer">
50+
<property name="orientation">
51+
<enum>Qt::Vertical</enum>
52+
</property>
53+
<property name="sizeType">
54+
<enum>QSizePolicy::Fixed</enum>
55+
</property>
56+
<property name="sizeHint" stdset="0">
57+
<size>
58+
<width>20</width>
59+
<height>10</height>
60+
</size>
61+
</property>
62+
</spacer>
63+
</item>
64+
<item row="3" column="0">
65+
<widget class="QLabel" name="label_tblname">
66+
<property name="font">
67+
<font>
68+
<bold>true</bold>
69+
</font>
70+
</property>
71+
<property name="text">
72+
<string>Table Name</string>
73+
</property>
74+
</widget>
75+
</item>
76+
<item row="3" column="1">
77+
<widget class="QLineEdit" name="lineEdit_tblname"/>
78+
</item>
79+
<item row="4" column="1">
80+
<spacer name="verticalSpacer_2">
81+
<property name="orientation">
82+
<enum>Qt::Vertical</enum>
83+
</property>
84+
<property name="sizeType">
85+
<enum>QSizePolicy::Fixed</enum>
86+
</property>
87+
<property name="sizeHint" stdset="0">
88+
<size>
89+
<width>20</width>
90+
<height>10</height>
91+
</size>
92+
</property>
93+
</spacer>
94+
</item>
95+
<item row="5" column="0">
96+
<widget class="QLabel" name="label_username">
97+
<property name="font">
98+
<font>
99+
<bold>true</bold>
100+
</font>
101+
</property>
102+
<property name="text">
103+
<string>User Name</string>
104+
</property>
105+
</widget>
106+
</item>
107+
<item row="5" column="1">
108+
<widget class="QLineEdit" name="lineEdit_username"/>
109+
</item>
110+
<item row="6" column="1">
111+
<spacer name="verticalSpacer_6">
112+
<property name="orientation">
113+
<enum>Qt::Vertical</enum>
114+
</property>
115+
<property name="sizeType">
116+
<enum>QSizePolicy::Fixed</enum>
117+
</property>
118+
<property name="sizeHint" stdset="0">
119+
<size>
120+
<width>0</width>
121+
<height>10</height>
122+
</size>
123+
</property>
124+
</spacer>
125+
</item>
126+
<item row="7" column="1">
127+
<widget class="QPushButton" name="pushButton_search">
128+
<property name="text">
129+
<string>Search Data</string>
130+
</property>
131+
</widget>
132+
</item>
133+
<item row="8" column="0">
134+
<widget class="QLabel" name="label_password">
135+
<property name="font">
136+
<font>
137+
<bold>true</bold>
138+
</font>
139+
</property>
140+
<property name="text">
141+
<string>Password</string>
142+
</property>
143+
</widget>
144+
</item>
145+
<item row="8" column="1">
146+
<widget class="QLineEdit" name="lineEdit_username_2"/>
147+
</item>
148+
<item row="9" column="0" colspan="2">
149+
<widget class="QLabel" name="label_result">
150+
<property name="font">
151+
<font>
152+
<bold>true</bold>
153+
</font>
154+
</property>
155+
<property name="text">
156+
<string/>
157+
</property>
158+
</widget>
159+
</item>
160+
</layout>
161+
</widget>
162+
<resources/>
163+
<connections/>
164+
</ui>
File renamed without changes.

0 commit comments

Comments
 (0)