0% found this document useful (0 votes)
36 views

Python Gui03

This document defines a Python GUI application for managing products and members using PyQt5. It includes functions to: 1. Create the main window with toolbars for adding products, members, and selling products. 2. Add tab widgets for products, members, and statistics data. 3. Define widgets like tables and buttons and add them to layouts within each tab. 4. Populate the product and member tables by querying a SQLite database and displaying the results.

Uploaded by

nirmal suthar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
36 views

Python Gui03

This document defines a Python GUI application for managing products and members using PyQt5. It includes functions to: 1. Create the main window with toolbars for adding products, members, and selling products. 2. Add tab widgets for products, members, and statistics data. 3. Define widgets like tables and buttons and add them to layouts within each tab. 4. Populate the product and member tables by querying a SQLite database and displaying the results.

Uploaded by

nirmal suthar
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

1 import sys,os

2 from PyQt5.QtWidgets import *


3 from PyQt5.QtGui import *
4 from PyQt5.QtCore import Qt
5 import sqlite3
6 import addproduct,addmember,sellings,style
7 from PIL import Image
8
9 con=sqlite3.connect("products.db")
10 cur=con.cursor()
11
12
13 #pyqt python
14 class Main(QMainWindow):
15 def __init__(self):
16 super().__init__()
17 self.setWindowTitle("Product Manager")
18 self.setWindowIcon(QIcon('icons/icon.ico'))
19 self.setGeometry(450,150,1350,750)
20 self.setFixedSize(self.size())
21
22 self.UI()
23 self.show()
24 def toolBar(self):
25 self.tb=self.addToolBar("Tool Bar")
26 self.tb.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
27 #####################Toolbar Buttons############
28 ####################Add Product################
29 self.addProduct=QAction(QIcon('icons/add.png'),"Add Product",self)
30 self.tb.addAction(self.addProduct)
31 self.addProduct.triggered.connect(self.funcAddProduct)
32 self.tb.addSeparator()
33 ######################Add Member################
34 self.addMember=QAction(QIcon('icons/users.png'),"Add Member",self)
35 self.tb.addAction(self.addMember)
36 self.addMember.triggered.connect(self.funcAddMember)
37 self.tb.addSeparator()
38 ######################Sell Products###############
39 self.sellProduct = QAction(QIcon('icons/sell.png'),"Sell Product",self)
40 self.tb.addAction(self.sellProduct)
41 self.sellProduct.triggered.connect(self.funcSellProducts)
42 self.tb.addSeparator()
43
44
45
46
47
48 def tabWigdet(self):
49 self.tabs=QTabWidget()
50 self.tabs.blockSignals(True)
51 self.tabs.currentChanged.connect(self.tabChanged)
52 self.setCentralWidget(self.tabs)
53 self.tab1=QWidget()
54 self.tab2=QWidget()
55 self.tab3=QWidget()
56 self.tabs.addTab(self.tab1,"Products")
57 self.tabs.addTab(self.tab2,"Members")
58 self.tabs.addTab(self.tab3,"Statistics")
59 def UI(self):
60 self.toolBar()
61 self.tabWigdet()
62 self.widgets()
63 self.layouts()
64 self.displayProducts()
65 self.displayMembers()
66 self.getStatistics()
67
68
69 def widgets(self):
70 #######################Tab1 Widgets###############
71 ####################Main left layout widget##########
72 self.productsTable = QTableWidget()
73 self.productsTable.setColumnCount(6)
74 self.productsTable.setColumnHidden(0,True)
75 self.productsTable.setHorizontalHeaderItem(0,QTableWidgetItem("Product Id"))
76 self.productsTable.setHorizontalHeaderItem(1,QTableWidgetItem("Product Name"))
77 self.productsTable.setHorizontalHeaderItem(2,QTableWidgetItem("Manufacturer"))
78 self.productsTable.setHorizontalHeaderItem(3,QTableWidgetItem("Price"))
79 self.productsTable.setHorizontalHeaderItem(4,QTableWidgetItem("Qouta"))
80 self.productsTable.setHorizontalHeaderItem(5,QTableWidgetItem("Availbility"))
81 self.productsTable.horizontalHeader().setSectionResizeMode(1,QHeaderView.Stretch)
82 self.productsTable.horizontalHeader().setSectionResizeMode(2,QHeaderView.Stretch)
83 self.productsTable.doubleClicked.connect(self.selectedProduct)
84
85
86 ########################Right top layout widgets#######################
87 self.searchText=QLabel("Search")
88 self.searchEntry=QLineEdit()
89 self.searchEntry.setPlaceholderText("Search For Products")
90 self.searchButton=QPushButton("Search")
91 self.searchButton.clicked.connect(self.searchProducts)
92 self.searchButton.setStyleSheet(style.searchButtonStyle())
93 ##########################Right middle layout widgets###########
94 self.allProducts=QRadioButton("All Products")
95 self.avaialableProducts=QRadioButton("Available")
96 self.notAvaialableProducts=QRadioButton("Not Available")
97 self.listButton=QPushButton("List")
98 self.listButton.clicked.connect(self.listProducts)
99 self.listButton.setStyleSheet(style.listButtonStyle())
100 ########################Tab2 Widgets#########################
101 self.membersTable=QTableWidget()
102 self.membersTable.setColumnCount(4)
103 self.membersTable.setHorizontalHeaderItem(0,QTableWidgetItem("Member ID"))
104 self.membersTable.setHorizontalHeaderItem(1,QTableWidgetItem("Member Name"))
105 self.membersTable.setHorizontalHeaderItem(2,QTableWidgetItem("Member Surname"))
106 self.membersTable.setHorizontalHeaderItem(3,QTableWidgetItem("Phone"))
107 self.membersTable.horizontalHeader().setSectionResizeMode(1,QHeaderView.Stretch)
108 self.membersTable.horizontalHeader().setSectionResizeMode(2,QHeaderView.Stretch)
109 self.membersTable.horizontalHeader().setSectionResizeMode(3,QHeaderView.Stretch)
110 self.membersTable.doubleClicked.connect(self.selectedMember)
111 self.memberSearchText=QLabel("Search Members")
112 self.memberSearchEntry=QLineEdit()
113 self.memberSearchButton=QPushButton("Search")
114 self.memberSearchButton.clicked.connect(self.searchMembers)
115 ##########################Tab3 widgets#####################
116 self.totalProductsLabel=QLabel()
117 self.totalMemberLabel=QLabel()
118 self.soldProductsLabel=QLabel()
119 self.totalAmountLabel=QLabel()
120
121
122
123
124
125 def layouts(self):
126 ######################Tab1 layouts##############
127 self.mainLayout=QHBoxLayout()
128 self.mainLeftLayout=QVBoxLayout()
129 self.mainRightLayout=QVBoxLayout()
130 self.rightTopLayout=QHBoxLayout()
131 self.rightMiddleLayout=QHBoxLayout()
132 self.topGroupBox=QGroupBox("Search Box")
133 self.topGroupBox.setStyleSheet(style.searchBoxStyle())
134 self.middleGroupBox=QGroupBox("List Box")
135 self.middleGroupBox.setStyleSheet(style.listBoxStyle())
136 self.bottomGroupBox=QGroupBox()
137 #################Add widgets###################
138 ################Left main layout widget###########
139 self.mainLeftLayout.addWidget(self.productsTable)
140 ########################Right top layout widgets#########
141 self.rightTopLayout.addWidget(self.searchText)
142 self.rightTopLayout.addWidget(self.searchEntry)
143 self.rightTopLayout.addWidget(self.searchButton)
144 self.topGroupBox.setLayout(self.rightTopLayout)
145 #################Right middle layout widgets##########
146 self.rightMiddleLayout.addWidget(self.allProducts)
147 self.rightMiddleLayout.addWidget(self.avaialableProducts)
148 self.rightMiddleLayout.addWidget(self.notAvaialableProducts)
149 self.rightMiddleLayout.addWidget(self.listButton)
150 self.middleGroupBox.setLayout(self.rightMiddleLayout)
151
152 self.mainRightLayout.addWidget(self.topGroupBox,20)
153 self.mainRightLayout.addWidget(self.middleGroupBox,20)
154 self.mainRightLayout.addWidget(self.bottomGroupBox,60)
155 self.mainLayout.addLayout(self.mainLeftLayout,70)
156 self.mainLayout.addLayout(self.mainRightLayout,30)
157 self.tab1.setLayout(self.mainLayout)
158 ######################Tab2 Layouts#####################
159 self.memberMainLayout=QHBoxLayout()
160 self.memberLeftLayout=QHBoxLayout()
161 self.memberRightLayout=QHBoxLayout()
162 self.memberRightGroupBox=QGroupBox("Search For Members")
163 self.memberRightGroupBox.setContentsMargins(10,10,10,600)
164 self.memberRightLayout.addWidget(self.memberSearchText)
165 self.memberRightLayout.addWidget(self.memberSearchEntry)
166 self.memberRightLayout.addWidget(self.memberSearchButton)
167 self.memberRightGroupBox.setLayout(self.memberRightLayout)
168
169 self.memberLeftLayout.addWidget(self.membersTable)
170 self.memberMainLayout.addLayout(self.memberLeftLayout,70)
171 self.memberMainLayout.addWidget(self.memberRightGroupBox,30)
172 self.tab2.setLayout(self.memberMainLayout)
173
174 #####################Tab3 layouts########################
175 self.statisticsMainLayout=QVBoxLayout()
176 self.statisticsLayout=QFormLayout()
177 self.statisticsGroupBox=QGroupBox("Statistics")
178 self.statisticsLayout.addRow("Total Products:",self.totalProductsLabel)
179 self.statisticsLayout.addRow("Total Member:",self.totalMemberLabel)
180 self.statisticsLayout.addRow("Sold Products:",self.soldProductsLabel)
181 self.statisticsLayout.addRow("Total Amount:",self.totalAmountLabel)
182
183 self.statisticsGroupBox.setLayout(self.statisticsLayout)
184 self.statisticsGroupBox.setFont(QFont("Arial",20))
185 self.statisticsMainLayout.addWidget(self.statisticsGroupBox)
186 self.tab3.setLayout(self.statisticsMainLayout)
187 self.tabs.blockSignals(False)
188 def displayProducts(self):
189 self.productsTable.setFont(QFont("Times",12))
190 for i in reversed(range(self.productsTable.rowCount())):
191 self.productsTable.removeRow(i)
192
193 query = cur.execute("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,product_
availability FROM products")
194 for row_data in query:
195 row_number = self.productsTable.rowCount()
196 self.productsTable.insertRow(row_number)
197 for column_number, data in enumerate(row_data):
198
self.productsTable.setItem(row_number,column_number,QTableWidgetItem(str(
data)))
199
200 self.productsTable.setEditTriggers(QAbstractItemView.NoEditTriggers)
201
202
203
204 def funcAddProduct(self):
205 self.newProduct=addproduct.AddProduct()
206
207 def funcAddMember(self):
208 self.newMember=addmember.AddMember()
209
210
211
212
213 def displayMembers(self):
214 self.membersTable.setFont(QFont("Times",12))
215 for i in reversed(range(self.membersTable.rowCount())):
216 self.membersTable.removeRow(i)
217
218 members=cur.execute("SELECT * FROM members")
219 for row_data in members:
220 row_number = self.membersTable.rowCount()
221 self.membersTable.insertRow(row_number)
222 for column_number, data in enumerate(row_data):
223
self.membersTable.setItem(row_number,column_number,QTableWidgetItem(str(d
ata)))
224
225 self.membersTable.setEditTriggers(QAbstractItemView.NoEditTriggers)
226
227
228 def selectedProduct(self):
229 global productId
230 listProduct=[]
231 for i in range(0,6):
232
listProduct.append(self.productsTable.item(self.productsTable.currentRow(),i)
.text())
233
234 productId=listProduct[0]
235 self.display=DisplayProduct()
236 self.display.show()
237
238 def selectedMember(self):
239 global memberId
240 listMember=[]
241 for i in range(0,4):
242
listMember.append(self.membersTable.item(self.membersTable.currentRow(),i).te
xt())
243
244 memberId=listMember[0]
245 self.displayMember=DisplayMember()
246 self.displayMember.show()
247
248 def searchProducts(self):
249 value=self.searchEntry.text()
250 if value == "":
251 QMessageBox.information(self,"Warning","Search query cant be empty!!!")
252
253 else:
254 self.searchEntry.setText("")
255
256 query=("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,prod
uct_availability FROM products WHERE product_name LIKE ? or
product_manufacturer LIKE ?")
257 results=cur.execute(query,('%' + value + '%','%' + value + '%')).fetchall()
258 print(results)
259
260 if results == []:
261 QMessageBox.information(self,"Warning","There is no such a product or
manufacturer")
262
263 else:
264 for i in reversed(range(self.productsTable.rowCount())):
265 self.productsTable.removeRow(i)
266
267 for row_data in results:
268 row_number = self.productsTable.rowCount()
269 self.productsTable.insertRow(row_number)
270 for column_number, data in enumerate(row_data):
271
self.productsTable.setItem(row_number,column_number,QTableWidgetI
tem(str(data)))
272
273 def searchMembers(self):
274 value = self.memberSearchEntry.text()
275 if value == "":
276 QMessageBox.information(self,"Warning","Search query can not be empty")
277
278 else:
279 self.memberSearchEntry.setText("")
280 query=("SELECT * FROM members WHERE member_name LIKE ? or member_surname
LIKE ? or member_phone LIKE ?")
281 results=cur.execute(query,('%' + value + '%', '%' + value + '%', '%' +
value + '%')).fetchall()
282 if results == []:
283 QMessageBox.information(self,"Warning","There is no such a member")
284 else:
285 for i in reversed(range(self.membersTable.rowCount())):
286 self.membersTable.removeRow(i)
287
288 for row_data in results:
289 row_number = self.membersTable.rowCount()
290 self.membersTable.insertRow(row_number)
291 for column_number, data in enumerate(row_data):
292 self.membersTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
293
294
295
296 def listProducts(self):
297 if self.allProducts.isChecked() == True:
298 self.displayProducts()
299
300 elif self.avaialableProducts.isChecked():
301 query=("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,"
302 "product_availability FROM products WHERE
product_availability='Available'")
303 products=cur.execute(query).fetchall()
304 print(products)
305
306 for i in reversed(range(self.productsTable.rowCount())):
307 self.productsTable.removeRow(i)
308
309 for row_data in products:
310 row_number = self.productsTable.rowCount()
311 self.productsTable.insertRow(row_number)
312 for column_number, data in enumerate(row_data):
313 self.productsTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
314
315 elif self.notAvaialableProducts.isChecked():
316 query = ("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,"
317 "product_availability FROM products WHERE
product_availability='UnAvailable'")
318 products = cur.execute(query).fetchall()
319 print(products)
320
321 for i in reversed(range(self.productsTable.rowCount())):
322 self.productsTable.removeRow(i)
323
324 for row_data in products:
325 row_number = self.productsTable.rowCount()
326 self.productsTable.insertRow(row_number)
327 for column_number, data in enumerate(row_data):
328 self.productsTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
329
330
331 def funcSellProducts(self):
332 self.sell = sellings.SellProducts()
333
334
335 def getStatistics(self):
336 countProducts=cur.execute("SELECT count(product_id) FROM products").fetchall()
337 countMembers = cur.execute("SELECT count(member_id) FROM members").fetchall()
338 soldProducts = cur.execute("SELECT SUM(selling_quantity) FROM
sellings").fetchall()
339 totalAmount = cur.execute("SELECT SUM(selling_amount) FROM sellings").fetchall()
340 totalAmount = totalAmount[0][0]
341 soldProducts = soldProducts[0][0]
342 countMembers = countMembers[0][0]
343 countProducts = countProducts[0][0]
344 self.totalProductsLabel.setText(str(countProducts))
345 self.totalMemberLabel.setText(str(countMembers))
346 self.soldProductsLabel.setText(str(soldProducts))
347 self.totalAmountLabel.setText(str(totalAmount)+" $")
348
349 def tabChanged(self):
350 self.getStatistics()
351 self.displayProducts()
352 self.displayMembers()
353
354
355
356 class DisplayMember(QWidget):
357 def __init__(self):
358 super().__init__()
359 self.setWindowTitle("Member Details")
360 self.setWindowIcon(QIcon('icons/icon.ico'))
361 self.setGeometry(450,150,350,600)
362 self.setFixedSize(self.size())
363 self.UI()
364 self.show()
365
366 def UI(self):
367 self.memberDetails()
368 self.widgets()
369 self.layouts()
370
371
372 def memberDetails(self):
373 global memberId
374 query=("SELECT * FROM members WHERE member_id=?")
375 member=cur.execute(query,(memberId,)).fetchone()
376 self.memberName=member[1]
377 self.memberSurname=member[2]
378 self.memberPhone=member[3]
379
380 def widgets(self):
381 ###############Widgets of top layout############
382 self.memberImg=QLabel()
383 self.img=QPixmap('icons/members.png')
384 self.memberImg.setPixmap(self.img)
385 self.memberImg.setAlignment(Qt.AlignCenter)
386 self.titleText=QLabel("Display Member")
387 self.titleText.setAlignment(Qt.AlignCenter)
388 ###################widgets of bottom layout#########
389 self.nameEntry=QLineEdit()
390 self.nameEntry.setText(self.memberName)
391 self.surnameEntry=QLineEdit()
392 self.surnameEntry.setText(self.memberSurname)
393 self.phoneEntry=QLineEdit()
394 self.phoneEntry.setText(self.memberPhone)
395 self.updateBtn=QPushButton("Update")
396 self.updateBtn.clicked.connect(self.updateMember)
397 self.deleteBtn=QPushButton("Delete")
398 self.deleteBtn.clicked.connect(self.deleteMember)
399
400
401
402 def layouts(self):
403 self.mainLayout=QVBoxLayout()
404 self.topLayout=QVBoxLayout()
405 self.bottomLayout=QFormLayout()
406 self.topFrame=QFrame()
407 self.topFrame.setStyleSheet(style.memberTopFrame())
408 self.bottomFrame=QFrame()
409 self.bottomFrame.setStyleSheet(style.memberBottomFrame())
410 ##############add widgets######3
411 self.topLayout.addWidget(self.titleText)
412 self.topLayout.addWidget(self.memberImg)
413 self.topFrame.setLayout(self.topLayout)
414
415 self.bottomLayout.addRow(QLabel("Name: "),self.nameEntry)
416 self.bottomLayout.addRow(QLabel("Surname: "),self.surnameEntry)
417 self.bottomLayout.addRow(QLabel("Phone: "),self.phoneEntry)
418 self.bottomLayout.addRow(QLabel(""),self.updateBtn)
419 self.bottomLayout.addRow(QLabel(""),self.deleteBtn)
420 self.bottomFrame.setLayout(self.bottomLayout)
421
422 self.mainLayout.addWidget(self.topFrame)
423 self.mainLayout.addWidget(self.bottomFrame)
424 self.setLayout(self.mainLayout)
425
426
427 def deleteMember(self):
428 global memberId
429 mbox=QMessageBox.question(self,"Warning","Are you sure to delete this
member",QMessageBox.Yes|QMessageBox.No,QMessageBox.No)
430
431 if mbox == QMessageBox.Yes:
432 try:
433 query="DELETE FROM members WHERE member_id=?"
434 cur.execute(query,(memberId,))
435 con.commit()
436 QMessageBox.information(self,"Info","Member has been deleted!")
437 except:
438 QMessageBox.information(self,"Info","Member has not been deleted!")
439
440
441 def updateMember(self):
442 global memberId
443 name = self.nameEntry.text()
444 surname = self.surnameEntry.text()
445 phone = self.phoneEntry.text()
446
447 if (name and surname and phone !=""):
448 try:
449 query="UPDATE members set member_name=?, member_surname=?,
member_phone=? WHERE member_id=?"
450 cur.execute(query,(name,surname,phone,memberId))
451 con.commit()
452 QMessageBox.information(self,"Info","Member has been updated!")
453
454 except:
455 QMessageBox.information(self,"Info","Member has been updated!")
456
457 else:
458 QMessageBox.information(self, "Info", "Fields can not be empty!")
459
460 class DisplayProduct(QWidget):
461 def __init__(self):
462 super().__init__()
463 self.setWindowTitle("Product Details")
464 self.setWindowIcon(QIcon('icons/icon.ico'))
465 self.setGeometry(450,150,350,600)
466 self.setFixedSize(self.size())
467 self.UI()
468 self.show()
469
470 def UI(self):
471 self.productDetails()
472 self.widgets()
473 self.layouts()
474
475
476 def productDetails(self):
477 global productId
478 query=("SELECT * FROM products WHERE product_id=?")
479 product=cur.execute(query,(productId,)).fetchone()#single item tuple=(1,)
480 self.productName=product[1]
481 self.productManufacturer=product[2]
482 self.productPrice=product[3]
483 self.productQouta=product[4]
484 self.productImg=product[5]
485 self.productStatus=product[6]
486
487 def widgets(self):
488 #################Top layouts wigdets#########
489 self.product_Img=QLabel()
490 self.img=QPixmap('img/{}'.format(self.productImg))
491 self.product_Img.setPixmap(self.img)
492 self.product_Img.setAlignment(Qt.AlignCenter)
493 self.titleText=QLabel("Update Product")
494 self.titleText.setAlignment(Qt.AlignCenter)
495
496 ##############Bottom Layout's widgets###########
497 self.nameEntry=QLineEdit()
498 self.nameEntry.setText(self.productName)
499 self.manufacturerEntry=QLineEdit()
500 self.manufacturerEntry.setText(self.productManufacturer)
501 self.priceEntry=QLineEdit()
502 self.priceEntry.setText(str(self.productPrice))
503 self.qoutaEntry=QLineEdit()
504 self.qoutaEntry.setText(str(self.productQouta))
505 self.availabilityCombo=QComboBox()
506 self.availabilityCombo.addItems(["Available","UnAvailable"])
507 self.uploadBtn=QPushButton("Upload")
508 self.uploadBtn.clicked.connect(self.uploadImg)
509 self.deleteBtn=QPushButton("Delete")
510 self.deleteBtn.clicked.connect(self.deleteProduct)
511 self.updateBtn=QPushButton("Update")
512 self.updateBtn.clicked.connect(self.updateProduct)
513
514
515
516
517 def layouts(self):
518 self.mainLayout=QVBoxLayout()
519 self.topLayout=QVBoxLayout()
520 self.bottomLayout=QFormLayout()
521 self.topFrame=QFrame()
522 self.topFrame.setStyleSheet(style.productTopFrame())
523 self.bottomFrame=QFrame()
524 self.bottomFrame.setStyleSheet(style.productBottomFrame())
525 ###############add widgets###########
526 self.topLayout.addWidget(self.titleText)
527 self.topLayout.addWidget(self.product_Img)
528 self.topFrame.setLayout(self.topLayout)
529 self.bottomLayout.addRow(QLabel("Name: "),self.nameEntry)
530 self.bottomLayout.addRow(QLabel("Manufacturer: "),self.manufacturerEntry)
531 self.bottomLayout.addRow(QLabel("Price: "),self.priceEntry)
532 self.bottomLayout.addRow(QLabel("Qouta: "),self.qoutaEntry)
533 self.bottomLayout.addRow(QLabel("Status: "),self.availabilityCombo)
534 self.bottomLayout.addRow(QLabel("Image: "),self.uploadBtn)
535 self.bottomLayout.addRow(QLabel(""),self.deleteBtn)
536 self.bottomLayout.addRow(QLabel(""),self.updateBtn)
537 self.bottomFrame.setLayout(self.bottomLayout)
538 self.mainLayout.addWidget(self.topFrame)
539 self.mainLayout.addWidget(self.bottomFrame)
540
541
542 self.setLayout(self.mainLayout)
543
544
545
546 def uploadImg(self):
547 size =(256,256)
548 self.filename,ok =QFileDialog.getOpenFileName(self,'Upload Image','','Image
files (*.jpg *.png)')
549 if ok:
550 self.productImg = os.path.basename(self.filename)
551 img=Image.open(self.filename)
552 img=img.resize(size)
553 img.save("img/{0}".format(self.productImg))
554
555 def updateProduct(self):
556 global productId
557 name = self.nameEntry.text()
558 manufacturer=self.manufacturerEntry.text()
559 price=int(self.priceEntry.text())
560 qouta=int(self.qoutaEntry.text())
561 status=self.availabilityCombo.currentText()
562 defaultImg=self.productImg
563
564 if (name and manufacturer and price and qouta !=""):
565
566 try:
567 query="UPDATE products set product_name=?, product_manufacturer =?,
product_price=?,product_qouta=?, product_img=?, product_availability=?
WHERE product_id=?"
568
cur.execute(query,(name,manufacturer,price,qouta,defaultImg,status,produc
tId))
569 con.commit()
570 QMessageBox.information(self,"Info","Product has been updated!")
571 except:
572 QMessageBox.information(self, "Info", "Product has not been updated!")
573 else:
574 QMessageBox.information(self, "Info", "Fields cant be empty!")
575
576 def deleteProduct(self):
577 global productId
578
579 mbox=QMessageBox.question(self,"Warning","Are you sure to delete this
product",QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
580
581 if(mbox==QMessageBox.Yes):
582 try:
583 cur.execute("DELETE FROM products WHERE product_id=?",(productId,))
584 con.commit()
585 QMessageBox.information(self,"Information","Product has been deleted!")
586 self.close()
587
588 except:
589 QMessageBox.information(self, "Information", "Product has not been
deleted!")
590
591
592 def main():
593 App=QApplication(sys.argv)
594 window = Main()
595 sys.exit(App.exec_())
596
597 if __name__ == '__main__':
598 main()

You might also like