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

Python Gui02

This document defines a Python GUI application for managing products and members using PyQt5. It includes: 1. A main window class with toolbars for adding products, members, and selling products. 2. Tab widgets for displaying products, members, and statistics. 3. Functions for displaying product and member data from a SQLite database in tables on their respective tabs. 4. Layouts and widgets like tables, buttons, and labels organized into groups and grids on each tab. 5. Connections between toolbar and button clicks to functions for adding/searching products and members. In summary, it defines a product management GUI with tabs and tables populated from a database using PyQt5 widgets,

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)
27 views

Python Gui02

This document defines a Python GUI application for managing products and members using PyQt5. It includes: 1. A main window class with toolbars for adding products, members, and selling products. 2. Tab widgets for displaying products, members, and statistics. 3. Functions for displaying product and member data from a SQLite database in tables on their respective tabs. 4. Layouts and widgets like tables, buttons, and labels organized into groups and grids on each tab. 5. Connections between toolbar and button clicks to functions for adding/searching products and members. In summary, it defines a product management GUI with tabs and tables populated from a database using PyQt5 widgets,

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 #gui 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
189
190
191 def funcAddProduct(self):
192 self.newProduct=addproduct.AddProduct()
193
194 def funcAddMember(self):
195 self.newMember=addmember.AddMember()
196
197 def displayProducts(self):
198 self.productsTable.setFont(QFont("Times",12))
199 for i in reversed(range(self.productsTable.rowCount())):
200 self.productsTable.removeRow(i)
201
202 query = cur.execute("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,product_
availability FROM products")
203 for row_data in query:
204 row_number = self.productsTable.rowCount()
205 self.productsTable.insertRow(row_number)
206 for column_number, data in enumerate(row_data):
207
self.productsTable.setItem(row_number,column_number,QTableWidgetItem(str(
data)))
208
209 self.productsTable.setEditTriggers(QAbstractItemView.NoEditTriggers)
210
211
212 def displayMembers(self):
213 self.membersTable.setFont(QFont("Times",12))
214 for i in reversed(range(self.membersTable.rowCount())):
215 self.membersTable.removeRow(i)
216
217 members=cur.execute("SELECT * FROM members")
218 for row_data in members:
219 row_number = self.membersTable.rowCount()
220 self.membersTable.insertRow(row_number)
221 for column_number, data in enumerate(row_data):
222
self.membersTable.setItem(row_number,column_number,QTableWidgetItem(str(d
ata)))
223
224 self.membersTable.setEditTriggers(QAbstractItemView.NoEditTriggers)
225
226
227 def selectedProduct(self):
228 global productId
229 listProduct=[]
230 for i in range(0,6):
231
listProduct.append(self.productsTable.item(self.productsTable.currentRow(),i)
.text())
232
233 productId=listProduct[0]
234 self.display=DisplayProduct()
235 self.display.show()
236
237 def selectedMember(self):
238 global memberId
239 listMember=[]
240 for i in range(0,4):
241
listMember.append(self.membersTable.item(self.membersTable.currentRow(),i).te
xt())
242
243 memberId=listMember[0]
244 self.displayMember=DisplayMember()
245 self.displayMember.show()
246
247 def searchProducts(self):
248 value=self.searchEntry.text()
249 if value == "":
250 QMessageBox.information(self,"Warning","Search query cant be empty!!!")
251
252 else:
253 self.searchEntry.setText("")
254
255 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 ?")
256 results=cur.execute(query,('%' + value + '%','%' + value + '%')).fetchall()
257 print(results)
258
259 if results == []:
260 QMessageBox.information(self,"Warning","There is no such a product or
manufacturer")
261
262 else:
263 for i in reversed(range(self.productsTable.rowCount())):
264 self.productsTable.removeRow(i)
265
266 for row_data in results:
267 row_number = self.productsTable.rowCount()
268 self.productsTable.insertRow(row_number)
269 for column_number, data in enumerate(row_data):
270
self.productsTable.setItem(row_number,column_number,QTableWidgetI
tem(str(data)))
271
272 def searchMembers(self):
273 value = self.memberSearchEntry.text()
274 if value == "":
275 QMessageBox.information(self,"Warning","Search query can not be empty")
276
277 else:
278 self.memberSearchEntry.setText("")
279 query=("SELECT * FROM members WHERE member_name LIKE ? or member_surname
LIKE ? or member_phone LIKE ?")
280 results=cur.execute(query,('%' + value + '%', '%' + value + '%', '%' +
value + '%')).fetchall()
281 if results == []:
282 QMessageBox.information(self,"Warning","There is no such a member")
283 else:
284 for i in reversed(range(self.membersTable.rowCount())):
285 self.membersTable.removeRow(i)
286
287 for row_data in results:
288 row_number = self.membersTable.rowCount()
289 self.membersTable.insertRow(row_number)
290 for column_number, data in enumerate(row_data):
291 self.membersTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
292
293
294
295 def listProducts(self):
296 if self.allProducts.isChecked() == True:
297 self.displayProducts()
298
299 elif self.avaialableProducts.isChecked():
300 query=("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,"
301 "product_availability FROM products WHERE
product_availability='Available'")
302 products=cur.execute(query).fetchall()
303 print(products)
304
305 for i in reversed(range(self.productsTable.rowCount())):
306 self.productsTable.removeRow(i)
307
308 for row_data in products:
309 row_number = self.productsTable.rowCount()
310 self.productsTable.insertRow(row_number)
311 for column_number, data in enumerate(row_data):
312 self.productsTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
313
314 elif self.notAvaialableProducts.isChecked():
315 query = ("SELECT
product_id,product_name,product_manufacturer,product_price,product_qouta,"
316 "product_availability FROM products WHERE
product_availability='UnAvailable'")
317 products = cur.execute(query).fetchall()
318 print(products)
319
320 for i in reversed(range(self.productsTable.rowCount())):
321 self.productsTable.removeRow(i)
322
323 for row_data in products:
324 row_number = self.productsTable.rowCount()
325 self.productsTable.insertRow(row_number)
326 for column_number, data in enumerate(row_data):
327 self.productsTable.setItem(row_number, column_number,
QTableWidgetItem(str(data)))
328
329
330 def funcSellProducts(self):
331 self.sell = sellings.SellProducts()
332
333
334 def getStatistics(self):
335 countProducts=cur.execute("SELECT count(product_id) FROM products").fetchall()
336 countMembers = cur.execute("SELECT count(member_id) FROM members").fetchall()
337 soldProducts = cur.execute("SELECT SUM(selling_quantity) FROM
sellings").fetchall()
338 totalAmount = cur.execute("SELECT SUM(selling_amount) FROM sellings").fetchall()
339 totalAmount = totalAmount[0][0]
340 soldProducts = soldProducts[0][0]
341 countMembers = countMembers[0][0]
342 countProducts = countProducts[0][0]
343 self.totalProductsLabel.setText(str(countProducts))
344 self.totalMemberLabel.setText(str(countMembers))
345 self.soldProductsLabel.setText(str(soldProducts))
346 self.totalAmountLabel.setText(str(totalAmount)+" $")
347
348 def tabChanged(self):
349 self.getStatistics()
350 self.displayProducts()
351 self.displayMembers()
352
353
354
355 class DisplayMember(QWidget):
356 def __init__(self):
357 super().__init__()
358 self.setWindowTitle("Member Details")
359 self.setWindowIcon(QIcon('icons/icon.ico'))
360 self.setGeometry(450,150,350,600)
361 self.setFixedSize(self.size())
362 self.UI()
363 self.show()
364
365 def UI(self):
366 self.memberDetails()
367 self.widgets()
368 self.layouts()
369
370
371 def memberDetails(self):
372 global memberId
373 query=("SELECT * FROM members WHERE member_id=?")
374 member=cur.execute(query,(memberId,)).fetchone()
375 self.memberName=member[1]
376 self.memberSurname=member[2]
377 self.memberPhone=member[3]
378
379 def widgets(self):
380 ###############Widgets of top layout############
381 self.memberImg=QLabel()
382 self.img=QPixmap('icons/members.png')
383 self.memberImg.setPixmap(self.img)
384 self.memberImg.setAlignment(Qt.AlignCenter)
385 self.titleText=QLabel("Display Member")
386 self.titleText.setAlignment(Qt.AlignCenter)
387 ###################widgets of bottom layout#########
388 self.nameEntry=QLineEdit()
389 self.nameEntry.setText(self.memberName)
390 self.surnameEntry=QLineEdit()
391 self.surnameEntry.setText(self.memberSurname)
392 self.phoneEntry=QLineEdit()
393 self.phoneEntry.setText(self.memberPhone)
394 self.updateBtn=QPushButton("Update")
395 self.updateBtn.clicked.connect(self.updateMember)
396 self.deleteBtn=QPushButton("Delete")
397 self.deleteBtn.clicked.connect(self.deleteMember)
398
399
400
401 def layouts(self):
402 self.mainLayout=QVBoxLayout()
403 self.topLayout=QVBoxLayout()
404 self.bottomLayout=QFormLayout()
405 self.topFrame=QFrame()
406 self.topFrame.setStyleSheet(style.memberTopFrame())
407 self.bottomFrame=QFrame()
408 self.bottomFrame.setStyleSheet(style.memberBottomFrame())
409 ##############add widgets######3
410 self.topLayout.addWidget(self.titleText)
411 self.topLayout.addWidget(self.memberImg)
412 self.topFrame.setLayout(self.topLayout)
413
414 self.bottomLayout.addRow(QLabel("Name: "),self.nameEntry)
415 self.bottomLayout.addRow(QLabel("Surname: "),self.surnameEntry)
416 self.bottomLayout.addRow(QLabel("Phone: "),self.phoneEntry)
417 self.bottomLayout.addRow(QLabel(""),self.updateBtn)
418 self.bottomLayout.addRow(QLabel(""),self.deleteBtn)
419 self.bottomFrame.setLayout(self.bottomLayout)
420
421 self.mainLayout.addWidget(self.topFrame)
422 self.mainLayout.addWidget(self.bottomFrame)
423 self.setLayout(self.mainLayout)
424
425
426 def deleteMember(self):
427 global memberId
428 mbox=QMessageBox.question(self,"Warning","Are you sure to delete this
member",QMessageBox.Yes|QMessageBox.No,QMessageBox.No)
429
430 if mbox == QMessageBox.Yes:
431 try:
432 query="DELETE FROM members WHERE member_id=?"
433 cur.execute(query,(memberId,))
434 con.commit()
435 QMessageBox.information(self,"Info","Member has been deleted!")
436 except:
437 QMessageBox.information(self,"Info","Member has not been deleted!")
438
439
440 def updateMember(self):
441 global memberId
442 name = self.nameEntry.text()
443 surname = self.surnameEntry.text()
444 phone = self.phoneEntry.text()
445
446 if (name and surname and phone !=""):
447 try:
448 query="UPDATE members set member_name=?, member_surname=?,
member_phone=? WHERE member_id=?"
449 cur.execute(query,(name,surname,phone,memberId))
450 con.commit()
451 QMessageBox.information(self,"Info","Member has been updated!")
452
453 except:
454 QMessageBox.information(self,"Info","Member has been updated!")
455
456 else:
457 QMessageBox.information(self, "Info", "Fields can not be empty!")
458
459 class DisplayProduct(QWidget):
460 def __init__(self):
461 super().__init__()
462 self.setWindowTitle("Product Details")
463 self.setWindowIcon(QIcon('icons/icon.ico'))
464 self.setGeometry(450,150,350,600)
465 self.setFixedSize(self.size())
466 self.UI()
467 self.show()
468
469 def UI(self):
470 self.productDetails()
471 self.widgets()
472 self.layouts()
473
474
475 def productDetails(self):
476 global productId
477 query=("SELECT * FROM products WHERE product_id=?")
478 product=cur.execute(query,(productId,)).fetchone()#single item tuple=(1,)
479 self.productName=product[1]
480 self.productManufacturer=product[2]
481 self.productPrice=product[3]
482 self.productQouta=product[4]
483 self.productImg=product[5]
484 self.productStatus=product[6]
485
486 def widgets(self):
487 #################Top layouts wigdets#########
488 self.product_Img=QLabel()
489 self.img=QPixmap('img/{}'.format(self.productImg))
490 self.product_Img.setPixmap(self.img)
491 self.product_Img.setAlignment(Qt.AlignCenter)
492 self.titleText=QLabel("Update Product")
493 self.titleText.setAlignment(Qt.AlignCenter)
494
495 ##############Bottom Layout's widgets###########
496 self.nameEntry=QLineEdit()
497 self.nameEntry.setText(self.productName)
498 self.manufacturerEntry=QLineEdit()
499 self.manufacturerEntry.setText(self.productManufacturer)
500 self.priceEntry=QLineEdit()
501 self.priceEntry.setText(str(self.productPrice))
502 self.qoutaEntry=QLineEdit()
503 self.qoutaEntry.setText(str(self.productQouta))
504 self.availabilityCombo=QComboBox()
505 self.availabilityCombo.addItems(["Available","UnAvailable"])
506 self.uploadBtn=QPushButton("Upload")
507 self.uploadBtn.clicked.connect(self.uploadImg)
508 self.deleteBtn=QPushButton("Delete")
509 self.deleteBtn.clicked.connect(self.deleteProduct)
510 self.updateBtn=QPushButton("Update")
511 self.updateBtn.clicked.connect(self.updateProduct)
512
513
514
515
516 def layouts(self):
517 self.mainLayout=QVBoxLayout()
518 self.topLayout=QVBoxLayout()
519 self.bottomLayout=QFormLayout()
520 self.topFrame=QFrame()
521 self.topFrame.setStyleSheet(style.productTopFrame())
522 self.bottomFrame=QFrame()
523 self.bottomFrame.setStyleSheet(style.productBottomFrame())
524 ###############add widgets###########
525 self.topLayout.addWidget(self.titleText)
526 self.topLayout.addWidget(self.product_Img)
527 self.topFrame.setLayout(self.topLayout)
528 self.bottomLayout.addRow(QLabel("Name: "),self.nameEntry)
529 self.bottomLayout.addRow(QLabel("Manufacturer: "),self.manufacturerEntry)
530 self.bottomLayout.addRow(QLabel("Price: "),self.priceEntry)
531 self.bottomLayout.addRow(QLabel("Qouta: "),self.qoutaEntry)
532 self.bottomLayout.addRow(QLabel("Status: "),self.availabilityCombo)
533 self.bottomLayout.addRow(QLabel("Image: "),self.uploadBtn)
534 self.bottomLayout.addRow(QLabel(""),self.deleteBtn)
535 self.bottomLayout.addRow(QLabel(""),self.updateBtn)
536 self.bottomFrame.setLayout(self.bottomLayout)
537 self.mainLayout.addWidget(self.topFrame)
538 self.mainLayout.addWidget(self.bottomFrame)
539
540
541 self.setLayout(self.mainLayout)
542
543
544
545 def uploadImg(self):
546 size =(256,256)
547 self.filename,ok =QFileDialog.getOpenFileName(self,'Upload Image','','Image
files (*.jpg *.png)')
548 if ok:
549 self.productImg = os.path.basename(self.filename)
550 img=Image.open(self.filename)
551 img=img.resize(size)
552 img.save("img/{0}".format(self.productImg))
553
554 def updateProduct(self):
555 global productId
556 name = self.nameEntry.text()
557 manufacturer=self.manufacturerEntry.text()
558 price=int(self.priceEntry.text())
559 qouta=int(self.qoutaEntry.text())
560 status=self.availabilityCombo.currentText()
561 defaultImg=self.productImg
562
563 if (name and manufacturer and price and qouta !=""):
564
565 try:
566 query="UPDATE products set product_name=?, product_manufacturer =?,
product_price=?,product_qouta=?, product_img=?, product_availability=?
WHERE product_id=?"
567
cur.execute(query,(name,manufacturer,price,qouta,defaultImg,status,produc
tId))
568 con.commit()
569 QMessageBox.information(self,"Info","Product has been updated!")
570 except:
571 QMessageBox.information(self, "Info", "Product has not been updated!")
572 else:
573 QMessageBox.information(self, "Info", "Fields cant be empty!")
574
575 def deleteProduct(self):
576 global productId
577
578 mbox=QMessageBox.question(self,"Warning","Are you sure to delete this
product",QMessageBox.Yes | QMessageBox.No,QMessageBox.No)
579
580 if(mbox==QMessageBox.Yes):
581 try:
582 cur.execute("DELETE FROM products WHERE product_id=?",(productId,))
583 con.commit()
584 QMessageBox.information(self,"Information","Product has been deleted!")
585 self.close()
586
587 except:
588 QMessageBox.information(self, "Information", "Product has not been
deleted!")
589
590
591 def main():
592 App=QApplication(sys.argv)
593 window = Main()
594 sys.exit(App.exec_())
595
596 if __name__ == '__main__':
597 main()

You might also like