def refresujTabelu(self): self.tabela = Tabela(len(self.kuvarPocetnik.praceniKuvari) + 1, 3) self.tabela.dodajZaglavlja(["Korisnicko"]) self.tabela.setColumnWidth(0, 120) brojac = 1 for naziv in self.kuvarPocetnik.praceniKuvari: self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(150, 160) self.grid.addWidget(self.tabela, 1, 1)
def refresujTabelu(self): self.tabela = Tabela(len(self.nazivi) + 1, 2) self.tabela.dodajZaglavlja(["Sifra", "Naziv"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 120) brojac = 1 for naziv in self.nazivi: self.tabela.setItem( brojac, 0, QTableWidgetItem( str(self.kuvarPocetnik.praceneKategorije[brojac - 1]))) self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(270, 160) self.grid.addWidget(self.tabela, 1, 1)
class ProzorZaDodavanjeSastojaka(QDialog): def __init__(self): super().__init__() self.dodatiUTabelu = [] self.sastojciMenadzer = QApplication.instance( ).actionManager.sastojciMenadzer self.initUI() def initUI(self): """ Funkcija koja definise izgled prozora koji se prikazuje kada korisnik zeli da doda dugotrajne sastojke prilikom registracije. :return: """ self.setWindowTitle("Aplikacija za kuvare pocetnike") ikonica = QIcon('..\slike\ikonica.png') self.setWindowIcon(ikonica) self.setFixedSize(800, 900) image = QImage("..\slike\sastojci.jpg") sImage = image.scaled(QSize(800, 900)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) sadrzaj = "" with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) self.postaviGrid() self.exec_() def postaviGrid(self): """ Funkcija koja postavlja layout prozora za dodavanje dugotrajnih sastojaka prilikom registracije. :return: """ grid = QGridLayout() self.setLayout(grid) matrica = [ '', '', '', '', '', '', '', 'Pretrazite tabelu:', '', '', '1', '', '', '*', '', '', '?', '', '', 'Dodajte novi sastojak:', '', '', 'Unesite ime sastojka:', '', '', '-', '', '', 'Izaberite tip kolicine sastojka:', '', '', '/', '', '', '+', '', '', '!', '', '', '#', '', ] pozicije = [(i, j) for i in range(14) for j in range(3)] self.postojeciSastojci = None self.dodatiSastojci = None for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "-": self.nazivSastojka = QLineEdit() self.nazivSastojka.setFixedSize(250, 25) grid.addWidget(self.nazivSastojka, *pozicija) elif sadrzaj == "*": sviSastojci = self.sastojciMenadzer.sviSastojci self.postojeciSastojci = Tabela(1, 3) self.postojeciSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.postojeciSastojci.setColumnWidth(0, 120) self.postojeciSastojci.setColumnWidth(1, 219) self.postojeciSastojci.setColumnWidth(2, 140) brojac = 1 self.popuniTabeluPostojece(sviSastojci) self.postojeciSastojci.setFixedSize(500, 165) grid.addWidget(self.postojeciSastojci, *pozicija) elif sadrzaj == "?": dugme = QPushButton("Dodaj sastojak") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajSastojak) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.comboBox = QComboBox() self.comboBox.addItem('Gram') self.comboBox.addItem('DL') self.comboBox.addItem('Komad') self.comboBox.addItem('Supena kasika') self.comboBox.addItem('Prstohvat') grid.addWidget(self.comboBox, *pozicija) elif sadrzaj == "+": dugme = QPushButton("Dodaj sastojak") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodavanjeNovogSastojka) grid.addWidget(dugme, *pozicija) elif sadrzaj == "!": self.dodatiSastojci = Tabela(1, 3) self.dodatiSastojci.setColumnWidth(0, 120) self.dodatiSastojci.setColumnWidth(1, 219) self.dodatiSastojci.setColumnWidth(2, 140) self.dodatiSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.dodatiSastojci.setFixedSize(500, 165) grid.addWidget(self.dodatiSastojci, *pozicija) elif sadrzaj == "#": dugme = QPushButton("Zavrsi dodavanje") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.zavrsenoDodavanje) grid.addWidget(dugme, *pozicija) elif sadrzaj == "1": self.nazivFilter = QLineEdit() self.nazivFilter.textChanged.connect(self.izvrsiPretragu) self.nazivFilter.setFixedSize(250, 25) self.nazivFilter.setToolTip( "Unesite naziv sastojka da biste pretrazili tabelu.") grid.addWidget(self.nazivFilter, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(170, 35) grid.addWidget(labela, *pozicija) def dodajSastojak(self): """ Funkcija koja se poziva kada korisnik zali da oznaceni sastojak iz tabele postojecih sastojaka doda u listu svojih dugotrajnih sastojaka prilikom registracije. Aktivira se pritiskom na dugme 'Dodaj sastojak'. :return: """ sviSastojci = self.sastojciMenadzer.sviSastojci redovi = self.postojeciSastojci.selectionModel().selectedRows() brojRedova = self.dodatiSastojci.rowCount() brojac = 0 for red in redovi: if red.row() - 1 < 0: ObavestavajucaPoruka( "Ne mozete oznaciti red sa nazivima kolona.") else: naziv = self.postojeciSastojci.item(red.row(), 2).text() tipKolicine = self.vratiEnum(naziv) sastojak = QApplication.instance( ).actionManager.sastojciMenadzer.vratiSastojakPoNazivuITipuKolicine( self.postojeciSastojci.item(red.row(), 1).text(), tipKolicine) # sastojak = sviSastojci[red.row()-1] if sastojak.sifra in self.dodatiUTabelu: ObavestavajucaPoruka("Vec ste dodali ovaj sastojak.") else: self.dodatiSastojci.insertRow(brojRedova + brojac) self.dodatiUTabelu.append(sastojak.sifra) self.dodatiSastojci.setItem( brojRedova + brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.dodatiSastojci.setItem( brojRedova + brojac, 1, QTableWidgetItem(sastojak.naziv)) self.dodatiSastojci.setItem( brojRedova + brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 def zavrsenoDodavanje(self): """ Funkcija koja se poziva kada korisnik pritisne dugme 'Zavrsi dodavanje'. Prozor za dodavanje sastojaka se sakriva. :return: """ self.hide() return self.dodatiUTabelu def dodavanjeNovogSastojka(self): """ Funkcija koja se poziva kada korisnik pritisne dugme 'Dodaj sastojak', a prethodno je uneo naziv sastojka i izabrao tip kolicine. Korisnik na ovaj nacin dodaje sastojak koji se ne nalazi u tabeli postojecih sastojaka. :return: """ naziv = self.nazivSastojka.text() tip = self.comboBox.currentIndex() if tip == 0: tipKolicine = TipKolicine.GRAM elif tip == 1: tipKolicine = TipKolicine.DL elif tip == 2: tipKolicine = TipKolicine.KOMAD elif tip == 3: tipKolicine = TipKolicine.SUPENAKASIKA else: tipKolicine = TipKolicine.PRSTOHVAT if naziv == "": ObavestavajucaPoruka("Potrebno je uneti naziv sastojka.") else: sastojak = self.sastojciMenadzer.kreirajSastojak( naziv, tipKolicine) if sastojak == None: ObavestavajucaPoruka( "Uneti sastojak vec postoji u listi sastojaka.") else: brojRedova = self.dodatiSastojci.rowCount() self.dodatiSastojci.insertRow(brojRedova) self.dodatiUTabelu.append(sastojak.sifra) self.dodatiSastojci.setItem( brojRedova, 0, QTableWidgetItem(str(sastojak.sifra))) self.dodatiSastojci.setItem(brojRedova, 1, QTableWidgetItem(sastojak.naziv)) self.dodatiSastojci.setItem( brojRedova, 2, QTableWidgetItem(str(sastojak.tipKolicine))) def izvrsiPretragu(self): if self.nazivFilter.text() == "": self.postojeciSastojci.setRowCount(1) self.popuniTabeluPostojece(self.sastojciMenadzer.sviSastojci) else: self.postojeciSastojci.setRowCount(1) self.filtrirajTabeluPostojece() def popuniTabeluPostojece(self, sviSastojci): self.postojeciSastojci.setColumnWidth(0, 120) self.postojeciSastojci.setColumnWidth(1, 219) self.postojeciSastojci.setColumnWidth(2, 140) brojac = self.postojeciSastojci.rowCount() self.postojeciSastojci.setRowCount(self.postojeciSastojci.rowCount() + len(sviSastojci)) for sastojak in sviSastojci: self.postojeciSastojci.setItem( brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.postojeciSastojci.setItem(brojac, 1, QTableWidgetItem(sastojak.naziv)) self.postojeciSastojci.setItem( brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 def filtrirajTabeluPostojece(self): naziv = self.nazivFilter.text() for i in self.sastojciMenadzer.sviSastojci: if i.naziv.upper().startswith(naziv.upper()): self.popuniTabeluPostojece([i]) def vratiEnum(self, naziv): if naziv == "GRAM": return TipKolicine.GRAM elif naziv == "DL": return TipKolicine.DL elif naziv == "KOMAD": return TipKolicine.KOMAD elif naziv == "SUPENAKASIKA": return TipKolicine.SUPENAKASIKA elif naziv == "PRSTOHVAT": return TipKolicine.PRSTOHVAT
def postaviGrid(self): """ Funkcija koja postavlja layout prozora za dodavanje dugotrajnih sastojaka prilikom registracije. :return: """ grid = QGridLayout() self.setLayout(grid) matrica = [ '', '', '', '', '', '', '', 'Pretrazite tabelu:', '', '', '1', '', '', '*', '', '', '?', '', '', 'Dodajte novi sastojak:', '', '', 'Unesite ime sastojka:', '', '', '-', '', '', 'Izaberite tip kolicine sastojka:', '', '', '/', '', '', '+', '', '', '!', '', '', '#', '', ] pozicije = [(i, j) for i in range(14) for j in range(3)] self.postojeciSastojci = None self.dodatiSastojci = None for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "-": self.nazivSastojka = QLineEdit() self.nazivSastojka.setFixedSize(250, 25) grid.addWidget(self.nazivSastojka, *pozicija) elif sadrzaj == "*": sviSastojci = self.sastojciMenadzer.sviSastojci self.postojeciSastojci = Tabela(1, 3) self.postojeciSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.postojeciSastojci.setColumnWidth(0, 120) self.postojeciSastojci.setColumnWidth(1, 219) self.postojeciSastojci.setColumnWidth(2, 140) brojac = 1 self.popuniTabeluPostojece(sviSastojci) self.postojeciSastojci.setFixedSize(500, 165) grid.addWidget(self.postojeciSastojci, *pozicija) elif sadrzaj == "?": dugme = QPushButton("Dodaj sastojak") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajSastojak) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.comboBox = QComboBox() self.comboBox.addItem('Gram') self.comboBox.addItem('DL') self.comboBox.addItem('Komad') self.comboBox.addItem('Supena kasika') self.comboBox.addItem('Prstohvat') grid.addWidget(self.comboBox, *pozicija) elif sadrzaj == "+": dugme = QPushButton("Dodaj sastojak") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodavanjeNovogSastojka) grid.addWidget(dugme, *pozicija) elif sadrzaj == "!": self.dodatiSastojci = Tabela(1, 3) self.dodatiSastojci.setColumnWidth(0, 120) self.dodatiSastojci.setColumnWidth(1, 219) self.dodatiSastojci.setColumnWidth(2, 140) self.dodatiSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.dodatiSastojci.setFixedSize(500, 165) grid.addWidget(self.dodatiSastojci, *pozicija) elif sadrzaj == "#": dugme = QPushButton("Zavrsi dodavanje") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.zavrsenoDodavanje) grid.addWidget(dugme, *pozicija) elif sadrzaj == "1": self.nazivFilter = QLineEdit() self.nazivFilter.textChanged.connect(self.izvrsiPretragu) self.nazivFilter.setFixedSize(250, 25) self.nazivFilter.setToolTip( "Unesite naziv sastojka da biste pretrazili tabelu.") grid.addWidget(self.nazivFilter, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(170, 35) grid.addWidget(labela, *pozicija)
class PrikazReceptaUredniku(QDialog): def __init__(self, parent, recept): super().__init__(parent) self.recept = recept self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer self.dodateKategorije = [] try: self.initUI() except Exception as e: print(e) self.show() def initUI(self): self.setWindowTitle("Prikaz recepta") self.setModal(True) image = QImage("..\slike\slika6.jpg") sImage = image.scaled(QSize(1000, 900)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) self.setFixedSize(1000, 900) self.izgled = QGridLayout() self.setLayout(self.izgled) matrica = ['1', '', '', '3', '', '2', '6', '', '7', '12', '8', '9', '4', '', '5', '', '', '', '10', '', '11', ] self.selekcije = [] pozicije = [(i, j) for i in range(7) for j in range(3)] for sadrzaj, pozicija in zip(matrica, pozicije): if sadrzaj == '1': self.noviNaziv = QTextEdit() self.noviNaziv.setText("<h1 style='color:black'><b>{0}<b></h1>".format(self.recept.naziv)) self.noviNaziv.setFixedSize(300, 50) self.izgled.addWidget(self.noviNaziv, *pozicija) if sadrzaj == '2': labela = QLabel() labela.setBackgroundRole(True) pixmapa = QPixmap('..\dizajn\\' + str(self.recept.id) + "." + str(self.recept.ekstenzijaSlike)) pixmapa.scaled(350, 350) labela.setPixmap(pixmapa) labela.setFixedSize(350, 350) self.izgled.addWidget(labela, *pozicija) if sadrzaj == '3': self.noviOpis = QTextEdit() self.noviOpis.setWordWrapMode(QTextOption.WordWrap) self.noviOpis.setText("<h6><i>{0}</i></h6>".format(self.recept.opis)) self.izgled.addWidget(self.noviOpis, *pozicija) self.noviOpis.setMaximumSize(350, 350) if sadrzaj == '4': sviSastojci = self.menadzerSastojci.sviSastojci self.tabelaSastojci = Tabela(len(sviSastojci) + 1, 3) self.tabelaSastojci.dodajZaglavlja(["Sifra", "Naziv sastojka", "Tip kolicine"]) self.tabelaSastojci.setColumnWidth(0, 90) self.tabelaSastojci.setColumnWidth(1, 150) self.tabelaSastojci.setColumnWidth(2, 120) brojac = 1 for sastojak in sviSastojci: self.tabelaSastojci.setItem(brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.tabelaSastojci.setItem(brojac, 1, QTableWidgetItem(sastojak.naziv)) self.tabelaSastojci.setItem(brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 self.tabelaSastojci.setFixedSize(400, 165) self.izgled.addWidget(self.tabelaSastojci, *pozicija) if sadrzaj == '5': svaOprema = self.menadzerOprema.svaOprema self.tabelaOprema = Tabela(len(svaOprema) + 1, 3) self.tabelaOprema.dodajZaglavlja(["Sifra", "Naziv aparata", "Naziv marke"]) self.tabelaOprema.setColumnWidth(0, 80) self.tabelaOprema.setColumnWidth(1, 150) self.tabelaOprema.setColumnWidth(2, 120) brojac = 1 for aparat in svaOprema: self.tabelaOprema.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra))) self.tabelaOprema.setItem(brojac, 1, QTableWidgetItem(aparat.naziv)) self.tabelaOprema.setItem(brojac, 2, QTableWidgetItem(aparat.marka)) brojac += 1 self.tabelaOprema.setFixedSize(400, 165) self.izgled.addWidget(self.tabelaOprema, *pozicija) if sadrzaj == '6': self.kategorije = QLabel() self.kategorije.setWordWrap(True) nazivi = [] for id in self.recept.kategorije: naziv = QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) nazivi.append(naziv) spojeno = ",".join(nazivi) # self.kategorije.setFixedSize(350,50) self.kategorije.setText("<b>Kategorije: {0}</b>".format(spojeno)) self.kategorije.setFont(QFont('Times', 12)) self.izgled.addWidget(self.kategorije, *pozicija) if sadrzaj == '7': ocjena = QLabel("<h4>Ocjena :{0}</h4>".format(self.recept.ocena.vrednost)) ocjena.setAlignment(Qt.AlignCenter) ocjena.setFixedSize(350, 30) self.izgled.addWidget(ocjena, *pozicija) if sadrzaj == "8": self.kategorijeNazivi = QApplication.instance().actionManager.receptiMenadzer.vratiNaziveKategorija() for kategorija in self.recept.kategorije: self.kategorijeNazivi.remove( QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(kategorija)) kompleter = QCompleter(self.kategorijeNazivi) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.unetaKategorija = QLineEdit() self.unetaKategorija.setCompleter(kompleter) self.unetaKategorija.setFixedSize(150, 25) self.izgled.addWidget(self.unetaKategorija, *pozicija) if sadrzaj == "9": dugme = QPushButton("Dodaj kategoriju") dugme.clicked.connect(self.dodajNovuKategoriju) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "10": dugme = QPushButton("Azuriraj recept") dugme.clicked.connect(self.azurirajRecept) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "11": dugme = QPushButton("Obrisi recept") dugme.clicked.connect(self.obrisiRecept) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "12": labela = QLabel("<h3>Dodajte kategoriju receptu:</h3>") self.izgled.addWidget(labela, *pozicija) def dodajNovuKategoriju(self): kategorija = self.unetaKategorija.text() if kategorija == "": ObavestavajucaPoruka("Morate uneti naziv kategorije.") return for id in self.recept.kategorije: if QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) == kategorija: ObavestavajucaPoruka("Uneta kategorija je vec dodeljena receptu.") return for id in self.dodateKategorije: if QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) == kategorija: ObavestavajucaPoruka("Uneta kategorija je vec dodeljena receptu.") return provera = False for kat in self.kategorijeNazivi: if kat.lower() == kategorija.lower(): provera = True if provera == False: ObavestavajucaPoruka("Morate uneti kategoriju koja postoji.") return id = QApplication.instance().actionManager.receptiMenadzer.postojanjeKategorije(kategorija) self.dodateKategorije.append(id) tekst = self.kategorije.text() tekst += ", " tekst += kategorija self.kategorije.setText("<b>{0}</b>".format(tekst)) def azurirajRecept(self): naziv = self.noviNaziv.toPlainText() opis = self.noviOpis.toPlainText() if naziv == self.recept.naziv and opis == self.recept.opis and len(self.dodateKategorije) == 0: ObavestavajucaPoruka("Morate naciniti neke izmene.") else: potvrda = QMessageBox odgovor = potvrda.question(self, 'Potvrda', "Da li ste sigurni da zelite da azurirate recept. Ako pritisnete Yes necete vise imati pristup ovom receptu.", potvrda.Yes | potvrda.No) if odgovor == potvrda.Yes: if naziv != self.recept.naziv: self.recept.naziv = naziv # QApplication.instance().actionManager.receptiMenadzer.azurirajHtmlDokument(self.recept) self.recept.azurirajHtmlDokument() self.recept.opis = opis for kategorija in self.dodateKategorije: self.recept.kategorije.append(kategorija) self.sacuvajPromene() self.close() def obrisiRecept(self): potvrda = QMessageBox odgovor = potvrda.question(self, 'Potvrda', "Da li ste sigurni da zelite da obrisete recept. Ako pritisnete Yes vise necete imati pravo da ga azurirate.", potvrda.Yes | potvrda.No) if odgovor == potvrda.Yes: self.sacuvajPromene() self.close() def sacuvajPromene(self): # QApplication.instance().actionManager.receptiMenadzer.izbrisiRecept(self.recept.id) self.recept.izbrisiRecept() QApplication.instance().actionManager.receptiMenadzer.izbrisiReceptKorisniku(self.recept.id) QApplication.instance().actionManager.prijavljeniKorisnik.noviRecepti.remove(int(self.recept.id)) QApplication.instance().actionManager.receptiMenadzer.sacuvajRecepte() QApplication.instance().actionManager.informacije.upisiUrednike() receptiZaUredjivanje = QApplication.instance().actionManager.receptiMenadzer.pronadjiRecepteZaUredjivanje( QApplication.instance().actionManager.prijavljeniKorisnik) QApplication.instance().actionManager.glavniProzor.inicijalizujPocetnu() QApplication.instance().actionManager.glavniProzor.sledecaPostoji = True QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac -= 1 if len(receptiZaUredjivanje) == QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac * 4: QApplication.instance().actionManager.glavniProzor.sledecaStranicaBrojac -= 1 QApplication.instance().actionManager.glavniProzor.refresujPocetnu(receptiZaUredjivanje, None, None, None)
def initUI(self): self.setWindowTitle("Prikaz recepta") self.setModal(True) image = QImage("..\slike\slika6.jpg") sImage = image.scaled(QSize(1000, 900)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) self.setFixedSize(1000, 900) self.izgled = QGridLayout() self.setLayout(self.izgled) matrica = ['1', '', '', '3', '', '2', '6', '', '7', '12', '8', '9', '4', '', '5', '', '', '', '10', '', '11', ] self.selekcije = [] pozicije = [(i, j) for i in range(7) for j in range(3)] for sadrzaj, pozicija in zip(matrica, pozicije): if sadrzaj == '1': self.noviNaziv = QTextEdit() self.noviNaziv.setText("<h1 style='color:black'><b>{0}<b></h1>".format(self.recept.naziv)) self.noviNaziv.setFixedSize(300, 50) self.izgled.addWidget(self.noviNaziv, *pozicija) if sadrzaj == '2': labela = QLabel() labela.setBackgroundRole(True) pixmapa = QPixmap('..\dizajn\\' + str(self.recept.id) + "." + str(self.recept.ekstenzijaSlike)) pixmapa.scaled(350, 350) labela.setPixmap(pixmapa) labela.setFixedSize(350, 350) self.izgled.addWidget(labela, *pozicija) if sadrzaj == '3': self.noviOpis = QTextEdit() self.noviOpis.setWordWrapMode(QTextOption.WordWrap) self.noviOpis.setText("<h6><i>{0}</i></h6>".format(self.recept.opis)) self.izgled.addWidget(self.noviOpis, *pozicija) self.noviOpis.setMaximumSize(350, 350) if sadrzaj == '4': sviSastojci = self.menadzerSastojci.sviSastojci self.tabelaSastojci = Tabela(len(sviSastojci) + 1, 3) self.tabelaSastojci.dodajZaglavlja(["Sifra", "Naziv sastojka", "Tip kolicine"]) self.tabelaSastojci.setColumnWidth(0, 90) self.tabelaSastojci.setColumnWidth(1, 150) self.tabelaSastojci.setColumnWidth(2, 120) brojac = 1 for sastojak in sviSastojci: self.tabelaSastojci.setItem(brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.tabelaSastojci.setItem(brojac, 1, QTableWidgetItem(sastojak.naziv)) self.tabelaSastojci.setItem(brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 self.tabelaSastojci.setFixedSize(400, 165) self.izgled.addWidget(self.tabelaSastojci, *pozicija) if sadrzaj == '5': svaOprema = self.menadzerOprema.svaOprema self.tabelaOprema = Tabela(len(svaOprema) + 1, 3) self.tabelaOprema.dodajZaglavlja(["Sifra", "Naziv aparata", "Naziv marke"]) self.tabelaOprema.setColumnWidth(0, 80) self.tabelaOprema.setColumnWidth(1, 150) self.tabelaOprema.setColumnWidth(2, 120) brojac = 1 for aparat in svaOprema: self.tabelaOprema.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra))) self.tabelaOprema.setItem(brojac, 1, QTableWidgetItem(aparat.naziv)) self.tabelaOprema.setItem(brojac, 2, QTableWidgetItem(aparat.marka)) brojac += 1 self.tabelaOprema.setFixedSize(400, 165) self.izgled.addWidget(self.tabelaOprema, *pozicija) if sadrzaj == '6': self.kategorije = QLabel() self.kategorije.setWordWrap(True) nazivi = [] for id in self.recept.kategorije: naziv = QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(id) nazivi.append(naziv) spojeno = ",".join(nazivi) # self.kategorije.setFixedSize(350,50) self.kategorije.setText("<b>Kategorije: {0}</b>".format(spojeno)) self.kategorije.setFont(QFont('Times', 12)) self.izgled.addWidget(self.kategorije, *pozicija) if sadrzaj == '7': ocjena = QLabel("<h4>Ocjena :{0}</h4>".format(self.recept.ocena.vrednost)) ocjena.setAlignment(Qt.AlignCenter) ocjena.setFixedSize(350, 30) self.izgled.addWidget(ocjena, *pozicija) if sadrzaj == "8": self.kategorijeNazivi = QApplication.instance().actionManager.receptiMenadzer.vratiNaziveKategorija() for kategorija in self.recept.kategorije: self.kategorijeNazivi.remove( QApplication.instance().actionManager.receptiMenadzer.vratiNazivKategorije(kategorija)) kompleter = QCompleter(self.kategorijeNazivi) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.unetaKategorija = QLineEdit() self.unetaKategorija.setCompleter(kompleter) self.unetaKategorija.setFixedSize(150, 25) self.izgled.addWidget(self.unetaKategorija, *pozicija) if sadrzaj == "9": dugme = QPushButton("Dodaj kategoriju") dugme.clicked.connect(self.dodajNovuKategoriju) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "10": dugme = QPushButton("Azuriraj recept") dugme.clicked.connect(self.azurirajRecept) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "11": dugme = QPushButton("Obrisi recept") dugme.clicked.connect(self.obrisiRecept) self.izgled.addWidget(dugme, *pozicija) if sadrzaj == "12": labela = QLabel("<h3>Dodajte kategoriju receptu:</h3>") self.izgled.addWidget(labela, *pozicija)
class PrikazInformacijaKuvara(QDialog): def __init__(self, korisnik, parent): super().__init__() self.parent = parent self.korisnik = korisnik self.initUI() self.inicijalizujGrid() self.exec_() def initUI(self): self.setWindowTitle("Prikaz profila") self.setFixedSize(800, 800) image = QImage("..\slike\profil.jpg") sImage = image.scaled(self.size()) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) icon = QIcon("..\slike\ikonica.png") self.setWindowIcon(icon) sadrzaj = "" with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) def inicijalizujGrid(self): grid = QGridLayout() self.setLayout(grid) matrica = [ 'Ime:', '1', '', 'Prezime:', '2', '', 'Korisnicko ime:', '3', '', 'Azurirajte korisnicko ime:', '/', '', 'Mejl:', '4', '', 'Datum rodjenja:', '5', '', 'Adresa:', '6', '', 'Naziv mesta:', '7', '', 'Azurirajte naziv mesta:', '*', '', 'Postanski broj:', '8', '', 'Azurirajte postanski broj:', '-', '', 'Pol:', '9', '', 'Dugotrajni sastojci:', '', '', '', '10', '', 'Dugotrajna oprema:', '', '', '', '11', '', '', '12', '', '', '13', '', ] pozicije = [(i, j) for i in range(18) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": labela = QLabel(self.korisnik.ime) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "2": labela = QLabel(self.korisnik.prezime) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "3": self.kIme = QLabel(self.korisnik.korisnickoIme) self.kIme.setFixedSize(170, 20) grid.addWidget(self.kIme, *pozicija) elif sadrzaj == "4": labela = QLabel(self.korisnik.mejl) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "5": labela = QLabel(self.korisnik.datumRodjenja) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "6": labela = QLabel(self.korisnik.adresa) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "7": self.mesto = QLabel(self.korisnik.mesto.nazivMesta) self.mesto.setFixedSize(170, 20) grid.addWidget(self.mesto, *pozicija) elif sadrzaj == "8": self.postanskiBr = QLabel(self.korisnik.mesto.postanskiBroj) self.postanskiBr.setFixedSize(170, 20) grid.addWidget(self.postanskiBr, *pozicija) elif sadrzaj == "9": if self.korisnik.pol == 0: pol = "Zenski" else: pol = "Muski" labela = QLabel(pol) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "10": sastojci = self.korisnik.dugotrajniSastojci sviSastojci = nadjiSastojke(sastojci) self.postojeciSastojci = Tabela(len(sviSastojci) + 1, 3) self.postojeciSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.postojeciSastojci.setColumnWidth(0, 120) self.postojeciSastojci.setColumnWidth(1, 219) self.postojeciSastojci.setColumnWidth(2, 140) brojac = 1 for sastojak in sviSastojci: self.postojeciSastojci.setItem( brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.postojeciSastojci.setItem( brojac, 1, QTableWidgetItem(sastojak.naziv)) self.postojeciSastojci.setItem( brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 self.postojeciSastojci.setFixedSize(522, 165) grid.addWidget(self.postojeciSastojci, *pozicija) elif sadrzaj == "11": oprema = self.korisnik.oprema svaOprema = nadjiOpremu(oprema) tabela = Tabela(len(svaOprema) + 1, 3) tabela.dodajZaglavlja(["Sifra", "Naziv", "Naziv marke"]) tabela.setColumnWidth(0, 120) tabela.setColumnWidth(1, 219) tabela.setColumnWidth(2, 140) brojac = 1 for aparat in svaOprema: tabela.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra))) tabela.setItem(brojac, 1, QTableWidgetItem(aparat.naziv)) tabela.setItem(brojac, 2, QTableWidgetItem(aparat.marka)) brojac += 1 tabela.setFixedSize(522, 165) grid.addWidget(tabela, *pozicija) elif sadrzaj == "12": dugme = QPushButton("Azuriraj nalog") dugme.clicked.connect(self.azurirajNalog) grid.addWidget(dugme, *pozicija) elif sadrzaj == "13": dugme = QPushButton("Obrisi nalog") dugme.clicked.connect(self.obrisiNalog) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.novoKIme = QLineEdit() self.novoKIme.setFixedWidth(170) self.novoKIme.setText(self.korisnik.korisnickoIme) grid.addWidget(self.novoKIme, *pozicija) elif sadrzaj == "*": self.novoMesto = QLineEdit() self.novoMesto.setFixedWidth(170) self.novoMesto.setText(self.korisnik.mesto.nazivMesta) grid.addWidget(self.novoMesto, *pozicija) elif sadrzaj == "-": self.noviPostanskiBr = QLineEdit() self.noviPostanskiBr.setFixedWidth(170) self.noviPostanskiBr.setText(self.korisnik.mesto.postanskiBroj) grid.addWidget(self.noviPostanskiBr, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(160, 20) grid.addWidget(labela, *pozicija) def azurirajNalog(self): if self.novoKIme.text() == "" and self.novoMesto.text( ) == "" and self.noviPostanskiBr.text() == "": ObavestavajucaPoruka("Niste uneli nove podatke.") elif QApplication.instance( ).actionManager.informacije.provjeriKorisnicko( self.novoKIme.text()) == True: ObavestavajucaPoruka( "Vec postoji korisnik sa unijetim korisnickim imenom") else: if self.novoKIme.text() != "": staroKorisnicko = self.korisnik.korisnickoIme self.korisnik.korisnickoIme = self.novoKIme.text() self.kIme.setText(self.novoKIme.text()) self.korisnik.azurirajHtmlDokument(staroKorisnicko) # QApplication.instance().actionManager.informacije.azurirajHtmlDokument(self.korisnik, staroKorisnicko) if self.novoMesto.text() != "": self.korisnik.mesto.nazivMesta = self.novoMesto.text() self.mesto.setText(self.novoMesto.text()) if self.noviPostanskiBr.text() != "": self.korisnik.mesto.postanskiBroj = self.noviPostanskiBr.text() self.postanskiBr.setText(self.noviPostanskiBr.text()) QApplication.instance().actionManager.informacije.upisiKorisnika() # QApplication.instance().actionManager.informacije.citanjeKorisnika() self.parent.refresujStranu() # mozda obrisati liniju ispod # self.hide() def obrisiNalog(self): potvrda = QMessageBox odgovor = potvrda.question( self, '', "Da li ste sigurni da zelite da obrisete nalog?", potvrda.Yes | potvrda.No) if odgovor == potvrda.Yes: QApplication.instance().actionManager.informacije.obrisiKuvara( self.korisnik) QApplication.instance().actionManager.informacije.upisiKorisnika() self.parent.refresujStranu() self.hide()
def inicijalizujGrid(self): grid = QGridLayout() self.setLayout(grid) matrica = [ 'Ime:', '1', '', 'Prezime:', '2', '', 'Korisnicko ime:', '3', '', 'Azurirajte korisnicko ime:', '/', '', 'Mejl:', '4', '', 'Datum rodjenja:', '5', '', 'Adresa:', '6', '', 'Naziv mesta:', '7', '', 'Azurirajte naziv mesta:', '*', '', 'Postanski broj:', '8', '', 'Azurirajte postanski broj:', '-', '', 'Pol:', '9', '', 'Dugotrajni sastojci:', '', '', '', '10', '', 'Dugotrajna oprema:', '', '', '', '11', '', '', '12', '', '', '13', '', ] pozicije = [(i, j) for i in range(18) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": labela = QLabel(self.korisnik.ime) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "2": labela = QLabel(self.korisnik.prezime) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "3": self.kIme = QLabel(self.korisnik.korisnickoIme) self.kIme.setFixedSize(170, 20) grid.addWidget(self.kIme, *pozicija) elif sadrzaj == "4": labela = QLabel(self.korisnik.mejl) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "5": labela = QLabel(self.korisnik.datumRodjenja) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "6": labela = QLabel(self.korisnik.adresa) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "7": self.mesto = QLabel(self.korisnik.mesto.nazivMesta) self.mesto.setFixedSize(170, 20) grid.addWidget(self.mesto, *pozicija) elif sadrzaj == "8": self.postanskiBr = QLabel(self.korisnik.mesto.postanskiBroj) self.postanskiBr.setFixedSize(170, 20) grid.addWidget(self.postanskiBr, *pozicija) elif sadrzaj == "9": if self.korisnik.pol == 0: pol = "Zenski" else: pol = "Muski" labela = QLabel(pol) labela.setFixedSize(170, 20) grid.addWidget(labela, *pozicija) elif sadrzaj == "10": sastojci = self.korisnik.dugotrajniSastojci sviSastojci = nadjiSastojke(sastojci) self.postojeciSastojci = Tabela(len(sviSastojci) + 1, 3) self.postojeciSastojci.dodajZaglavlja( ["Sifra", "Naziv sastojka", "Tip kolicine"]) self.postojeciSastojci.setColumnWidth(0, 120) self.postojeciSastojci.setColumnWidth(1, 219) self.postojeciSastojci.setColumnWidth(2, 140) brojac = 1 for sastojak in sviSastojci: self.postojeciSastojci.setItem( brojac, 0, QTableWidgetItem(str(sastojak.sifra))) self.postojeciSastojci.setItem( brojac, 1, QTableWidgetItem(sastojak.naziv)) self.postojeciSastojci.setItem( brojac, 2, QTableWidgetItem(str(sastojak.tipKolicine))) brojac += 1 self.postojeciSastojci.setFixedSize(522, 165) grid.addWidget(self.postojeciSastojci, *pozicija) elif sadrzaj == "11": oprema = self.korisnik.oprema svaOprema = nadjiOpremu(oprema) tabela = Tabela(len(svaOprema) + 1, 3) tabela.dodajZaglavlja(["Sifra", "Naziv", "Naziv marke"]) tabela.setColumnWidth(0, 120) tabela.setColumnWidth(1, 219) tabela.setColumnWidth(2, 140) brojac = 1 for aparat in svaOprema: tabela.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra))) tabela.setItem(brojac, 1, QTableWidgetItem(aparat.naziv)) tabela.setItem(brojac, 2, QTableWidgetItem(aparat.marka)) brojac += 1 tabela.setFixedSize(522, 165) grid.addWidget(tabela, *pozicija) elif sadrzaj == "12": dugme = QPushButton("Azuriraj nalog") dugme.clicked.connect(self.azurirajNalog) grid.addWidget(dugme, *pozicija) elif sadrzaj == "13": dugme = QPushButton("Obrisi nalog") dugme.clicked.connect(self.obrisiNalog) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.novoKIme = QLineEdit() self.novoKIme.setFixedWidth(170) self.novoKIme.setText(self.korisnik.korisnickoIme) grid.addWidget(self.novoKIme, *pozicija) elif sadrzaj == "*": self.novoMesto = QLineEdit() self.novoMesto.setFixedWidth(170) self.novoMesto.setText(self.korisnik.mesto.nazivMesta) grid.addWidget(self.novoMesto, *pozicija) elif sadrzaj == "-": self.noviPostanskiBr = QLineEdit() self.noviPostanskiBr.setFixedWidth(170) self.noviPostanskiBr.setText(self.korisnik.mesto.postanskiBroj) grid.addWidget(self.noviPostanskiBr, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(160, 20) grid.addWidget(labela, *pozicija)
class ProzorZaDodavanjeOpreme(QDialog): def __init__(self): super().__init__() self.dodatiUTabelu = [] self.opremaMenadzer = QApplication.instance( ).actionManager.opremaMenadzer self.initUI() def initUI(self): """ Funkcija koja definise izgled prozora za dodavanje opreme prilikom registracije korisnika. :return: """ self.setWindowTitle("Aplikacija za kuvare pocetnike") ikonica = QIcon('..\slike\ikonica.png') self.setWindowIcon(ikonica) self.setFixedSize(900, 900) image = QImage("..\slike\oprema.jpg") sImage = image.scaled(QSize(900, 900)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) sadrzaj = "" with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) self.postaviGrid() self.exec_() def postaviGrid(self): """ Funkcija koja postavlja layout prozora za dodavanje opreme prilikom registracije korisnika. :return: """ grid = QGridLayout() self.setLayout(grid) matrica = [ '', '', 'Pretrazite tabelu:', '', '', '1', '', '', '*', '', '', '?', '', '', 'Dodajte novi aparat:', '', '', 'Unesite ime:', '', '', '-', '', '', 'Unesite marku:', '', '', '/', '', '', '+', '', '', '!', '', '', '#', '', '', '', '', '', '', '', '', '', ] pozicije = [(i, j) for i in range(15) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "-": self.nazivOpreme = QLineEdit() self.nazivOpreme.setFixedSize(250, 25) grid.addWidget(self.nazivOpreme, *pozicija) elif sadrzaj == "*": svaOprema = self.opremaMenadzer.svaOprema self.postojecaOprema = Tabela(1, 3) self.postojecaOprema.dodajZaglavlja( ["Sifra", "Naziv aparata", "Naziv marke"]) self.postojecaOprema.setColumnWidth(0, 120) self.postojecaOprema.setColumnWidth(1, 219) self.postojecaOprema.setColumnWidth(2, 140) self.popuniTabeluPostojece(svaOprema) self.postojecaOprema.setFixedSize(522, 165) grid.addWidget(self.postojecaOprema, *pozicija) elif sadrzaj == "?": dugme = QPushButton("Dodaj aparat") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajIzTabele) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.nazivMarke = QLineEdit() self.nazivMarke.setFixedSize(250, 25) grid.addWidget(self.nazivMarke, *pozicija) elif sadrzaj == "+": dugme = QPushButton("Dodaj aparat") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajNoviAparat) grid.addWidget(dugme, *pozicija) elif sadrzaj == "!": self.dodataOprema = Tabela(1, 3) self.dodataOprema.setColumnWidth(0, 120) self.dodataOprema.setColumnWidth(1, 219) self.dodataOprema.setColumnWidth(2, 140) self.dodataOprema.setFixedSize(522, 165) self.dodataOprema.dodajZaglavlja( ["Sifra", "Naziv aparata", "Naziv marke"]) grid.addWidget(self.dodataOprema, *pozicija) elif sadrzaj == "#": dugme = QPushButton("Zavrsi dodavanje") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.zavrsenoDodavanje) grid.addWidget(dugme, *pozicija) elif sadrzaj == "1": self.nazivFilter = QLineEdit() self.nazivFilter.textChanged.connect(self.izvrsiPretragu) self.nazivFilter.setFixedSize(250, 25) self.nazivFilter.setToolTip( "Unesite ime aparata da biste pretrazili tabelu.") grid.addWidget(self.nazivFilter, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(150, 35) grid.addWidget(labela, *pozicija) def dodajIzTabele(self): """ Funkcija koja se poziva kada korisnik oznaci red u tabeli postojecih aparata i pritisne dugme "Dodaj aparat". Aparat koji je oznacen bice sacuvan u listi dodatih aparata. :return: """ svaOprema = self.opremaMenadzer.svaOprema redovi = self.postojecaOprema.selectionModel().selectedRows() brojRedova = self.dodataOprema.rowCount() brojac = 0 for red in redovi: if red.row() - 1 < 0: self.kreirajDijalogSPorukom( "Ne mozete oznaciti red sa nazivima kolona.") else: # oprema = svaOprema[red.row() - 1] oprema = QApplication.instance( ).actionManager.opremaMenadzer.vratiOpremu( self.postojecaOprema.item(red.row(), 0).text()) if oprema.sifra in self.dodatiUTabelu: ObavestavajucaPoruka("Oznaceni aparat ste vec dodali.") else: self.dodataOprema.insertRow(brojRedova + brojac) self.dodatiUTabelu.append(oprema.sifra) self.dodataOprema.setItem( brojRedova + brojac, 0, QTableWidgetItem(str(oprema.sifra))) self.dodataOprema.setItem(brojRedova + brojac, 1, QTableWidgetItem(oprema.naziv)) self.dodataOprema.setItem(brojRedova + brojac, 2, QTableWidgetItem(oprema.marka)) brojac += 1 def dodajNoviAparat(self): """ Funkcija koja se poziva kada korisnik zeli da unese aparat koji se ne nalazi u tabeli postojecih aparata. Kreira se novi objekat, dodaje u listu dodatih aparata i prikazuje u tabeli dodatih aparata. :return: """ naziv = self.nazivOpreme.text() marka = self.nazivMarke.text() oprema = self.opremaMenadzer.kreirajOpremu(naziv, marka) if naziv == "" or marka == "": ObavestavajucaPoruka("Morate uneti naziv i marku aparata.") else: if oprema == None: ObavestavajucaPoruka("Aparat vec postoji.") else: brojRedova = self.dodataOprema.rowCount() self.dodataOprema.insertRow(brojRedova) self.dodatiUTabelu.append(oprema.sifra) self.dodataOprema.setItem(brojRedova, 0, QTableWidgetItem(str(oprema.sifra))) self.dodataOprema.setItem(brojRedova, 1, QTableWidgetItem(oprema.naziv)) self.dodataOprema.setItem(brojRedova, 2, QTableWidgetItem(oprema.marka)) def zavrsenoDodavanje(self): """ Funkcija koja se poziva kada korisnik pritisne dugme 'Zavrsi dodavanje'. Prozor za dodavanje opreme se sakriva. :return: """ self.hide() return self.dodatiUTabelu def izvrsiPretragu(self): if self.nazivFilter.text() == "": self.postojecaOprema.setRowCount(1) self.popuniTabeluPostojece(self.opremaMenadzer.svaOprema) else: self.postojecaOprema.setRowCount(1) self.filtrirajTabeluPostojece() def popuniTabeluPostojece(self, svaOprema): self.postojecaOprema.setColumnWidth(0, 120) self.postojecaOprema.setColumnWidth(1, 219) self.postojecaOprema.setColumnWidth(2, 140) # self.postojecaOprema = Tabela(len(svaOprema) + 1, 3) brojac = self.postojecaOprema.rowCount() self.postojecaOprema.setRowCount(self.postojecaOprema.rowCount() + len(svaOprema)) for aparat in svaOprema: self.postojecaOprema.setItem(brojac, 0, QTableWidgetItem(str(aparat.sifra))) self.postojecaOprema.setItem(brojac, 1, QTableWidgetItem(aparat.naziv)) self.postojecaOprema.setItem(brojac, 2, QTableWidgetItem(aparat.marka)) brojac += 1 def filtrirajTabeluPostojece(self): naziv = self.nazivFilter.text() for i in self.opremaMenadzer.svaOprema: if i.naziv.upper().startswith(naziv.upper()): self.popuniTabeluPostojece([i])
def postaviGrid(self): """ Funkcija koja postavlja layout prozora za dodavanje opreme prilikom registracije korisnika. :return: """ grid = QGridLayout() self.setLayout(grid) matrica = [ '', '', 'Pretrazite tabelu:', '', '', '1', '', '', '*', '', '', '?', '', '', 'Dodajte novi aparat:', '', '', 'Unesite ime:', '', '', '-', '', '', 'Unesite marku:', '', '', '/', '', '', '+', '', '', '!', '', '', '#', '', '', '', '', '', '', '', '', '', ] pozicije = [(i, j) for i in range(15) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "-": self.nazivOpreme = QLineEdit() self.nazivOpreme.setFixedSize(250, 25) grid.addWidget(self.nazivOpreme, *pozicija) elif sadrzaj == "*": svaOprema = self.opremaMenadzer.svaOprema self.postojecaOprema = Tabela(1, 3) self.postojecaOprema.dodajZaglavlja( ["Sifra", "Naziv aparata", "Naziv marke"]) self.postojecaOprema.setColumnWidth(0, 120) self.postojecaOprema.setColumnWidth(1, 219) self.postojecaOprema.setColumnWidth(2, 140) self.popuniTabeluPostojece(svaOprema) self.postojecaOprema.setFixedSize(522, 165) grid.addWidget(self.postojecaOprema, *pozicija) elif sadrzaj == "?": dugme = QPushButton("Dodaj aparat") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajIzTabele) grid.addWidget(dugme, *pozicija) elif sadrzaj == "/": self.nazivMarke = QLineEdit() self.nazivMarke.setFixedSize(250, 25) grid.addWidget(self.nazivMarke, *pozicija) elif sadrzaj == "+": dugme = QPushButton("Dodaj aparat") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.dodajNoviAparat) grid.addWidget(dugme, *pozicija) elif sadrzaj == "!": self.dodataOprema = Tabela(1, 3) self.dodataOprema.setColumnWidth(0, 120) self.dodataOprema.setColumnWidth(1, 219) self.dodataOprema.setColumnWidth(2, 140) self.dodataOprema.setFixedSize(522, 165) self.dodataOprema.dodajZaglavlja( ["Sifra", "Naziv aparata", "Naziv marke"]) grid.addWidget(self.dodataOprema, *pozicija) elif sadrzaj == "#": dugme = QPushButton("Zavrsi dodavanje") dugme.setFixedSize(250, 30) dugme.clicked.connect(self.zavrsenoDodavanje) grid.addWidget(dugme, *pozicija) elif sadrzaj == "1": self.nazivFilter = QLineEdit() self.nazivFilter.textChanged.connect(self.izvrsiPretragu) self.nazivFilter.setFixedSize(250, 25) self.nazivFilter.setToolTip( "Unesite ime aparata da biste pretrazili tabelu.") grid.addWidget(self.nazivFilter, *pozicija) else: labela = QLabel(sadrzaj) labela.setFixedSize(150, 35) grid.addWidget(labela, *pozicija)
class PraceniKuvari(QDialog): def __init__(self, parent): super().__init__(parent) self.initUI() self.setModal(True) self.show() def initUI(self): self.setWindowTitle("Prikaz i uredjivanje pracenih kuvara") icon = QIcon("..\slike\ikonica.png") self.setWindowIcon(icon) sadrzaj = "" self.setFixedSize(600, 600) image = QImage("..\slike\praceniKuvari.jpg") sImage = image.scaled(self.size()) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) self.definisiIzgled() def definisiIzgled(self): self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance( ).actionManager.prijavljeniKorisnik matrica = [ 'Praceni kuvari:', '', '', '', '1', '', '', '4', '', 'Dodavanje novog kuvara:', '2', '', '', '3', '', ] self.sviKorisnici = [] for korisnik in QApplication.instance( ).actionManager.informacije.sviKuvari: if korisnik is not self.kuvarPocetnik: self.sviKorisnici.append(korisnik.korisnickoIme) pozicije = [(i, j) for i in range(5) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela( len(self.kuvarPocetnik.praceniKuvari) + 1, 1) self.tabela.dodajZaglavlja(["Korisnicko"]) self.tabela.setColumnWidth(0, 200) brojac = 1 for naziv in self.kuvarPocetnik.praceniKuvari: self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(200, 160) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": kompleter = QCompleter(self.sviKorisnici) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.labela = QLineEdit() self.labela.setCompleter(kompleter) self.labela.setFixedSize(130, 20) self.grid.addWidget(self.labela, *pozicija) elif sadrzaj == "3": self.dugme = QPushButton("Zaprati kuvara") self.dugme.setFixedSize(200, 20) self.grid.addWidget(self.dugme) self.dugme.clicked.connect(self.dodavanjeNovog) elif sadrzaj == "4": self.brisanje = QPushButton("Optrati kuvara") self.brisanje.setFixedSize(200, 20) self.grid.addWidget(self.brisanje) self.brisanje.clicked.connect(self.otpratiKuvara) else: labela = QLabel(sadrzaj) labela.setFixedSize(200, 20) self.grid.addWidget(labela, *pozicija) def otpratiKuvara(self): selektovaniRedovi = self.tabela.selectionModel().selectedRows() for red in selektovaniRedovi: self.kuvarPocetnik.praceniKuvari.pop(red.row() - 1) QApplication.instance().actionManager.informacije.upisiKorisnika() self.refresujTabelu() def dodavanjeNovog(self): if self.labela.text() not in self.sviKorisnici: msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Potrebno je uneti vec postojeceg korisnika!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return if self.labela.text() in self.kuvarPocetnik.praceniKuvari: msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Ne mozete pratiti jednog korisnika dva puta!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return if (self.labela.text() == ""): msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Morate uneti korisnicko ime!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return self.kuvarPocetnik.praceniKuvari.append(self.labela.text()) QApplication.instance().actionManager.informacije.upisiKorisnika() self.refresujTabelu() def refresujTabelu(self): self.tabela = Tabela(len(self.kuvarPocetnik.praceniKuvari) + 1, 3) self.tabela.dodajZaglavlja(["Korisnicko"]) self.tabela.setColumnWidth(0, 120) brojac = 1 for naziv in self.kuvarPocetnik.praceniKuvari: self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(150, 160) self.grid.addWidget(self.tabela, 1, 1)
def definisiIzgled(self): self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance( ).actionManager.prijavljeniKorisnik matrica = [ 'Praceni kuvari:', '', '', '', '1', '', '', '4', '', 'Dodavanje novog kuvara:', '2', '', '', '3', '', ] self.sviKorisnici = [] for korisnik in QApplication.instance( ).actionManager.informacije.sviKuvari: if korisnik is not self.kuvarPocetnik: self.sviKorisnici.append(korisnik.korisnickoIme) pozicije = [(i, j) for i in range(5) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela( len(self.kuvarPocetnik.praceniKuvari) + 1, 1) self.tabela.dodajZaglavlja(["Korisnicko"]) self.tabela.setColumnWidth(0, 200) brojac = 1 for naziv in self.kuvarPocetnik.praceniKuvari: self.tabela.setItem(brojac, 0, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(200, 160) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": kompleter = QCompleter(self.sviKorisnici) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.labela = QLineEdit() self.labela.setCompleter(kompleter) self.labela.setFixedSize(130, 20) self.grid.addWidget(self.labela, *pozicija) elif sadrzaj == "3": self.dugme = QPushButton("Zaprati kuvara") self.dugme.setFixedSize(200, 20) self.grid.addWidget(self.dugme) self.dugme.clicked.connect(self.dodavanjeNovog) elif sadrzaj == "4": self.brisanje = QPushButton("Optrati kuvara") self.brisanje.setFixedSize(200, 20) self.grid.addWidget(self.brisanje) self.brisanje.clicked.connect(self.otpratiKuvara) else: labela = QLabel(sadrzaj) labela.setFixedSize(200, 20) self.grid.addWidget(labela, *pozicija)
class PrikazKategorija(QDialog): def __init__(self, parent): super().__init__(parent) self.setWindowTitle("Uredjivanje pracenih kategorija") self.initUi() self.setModal(True) self.show() def initUi(self): self.setFixedSize(700, 700) image = QImage("..\slike\kategorije.jpg") sImage = image.scaled(QSize(700, 700)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) icon = QIcon("..\slike\ikonica.png") self.setWindowIcon(icon) sadrzaj = "" with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) self.definisiIzgled() def definisiIzgled(self): self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance( ).actionManager.prijavljeniKorisnik self.nazivi = [] for kategorija in self.kuvarPocetnik.praceneKategorije: self.nazivi.append(QApplication.instance( ).actionManager.receptiMenadzer.vratiNazivKategorije(kategorija)) matrica = [ '', 'Pracene kategorije:', '', '', '1', '', '', '4', '', '', 'Dodavanje nove kategorije:', '', '', '2', '', '', '3', '', ] pozicije = [(i, j) for i in range(6) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela(len(self.nazivi) + 1, 2) self.tabela.dodajZaglavlja(["Sifra", "Naziv"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 120) brojac = 1 for naziv in self.nazivi: self.tabela.setItem( brojac, 0, QTableWidgetItem( str(self.kuvarPocetnik.praceneKategorije[brojac - 1]))) self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(270, 160) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": self.kategorijeNazivi = QApplication.instance( ).actionManager.receptiMenadzer.vratiNaziveKategorija() kompleter = QCompleter(self.kategorijeNazivi) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.labela = QLineEdit() self.labela.setCompleter(kompleter) self.labela.setFixedSize(180, 20) self.grid.addWidget(self.labela, *pozicija) elif sadrzaj == "3": self.dugme = QPushButton("Dodaj novu kategoriju") self.dugme.setFixedSize(200, 20) self.grid.addWidget(self.dugme) self.dugme.clicked.connect(self.dodavanjeNove) elif sadrzaj == "4": self.brisanje = QPushButton("Izbrisi kategoriju") self.brisanje.setFixedSize(200, 20) self.grid.addWidget(self.brisanje) self.brisanje.clicked.connect(self.brisanjeKategorije) else: labela = QLabel(sadrzaj) labela.setFixedSize(180, 20) self.grid.addWidget(labela, *pozicija) def brisanjeKategorije(self): selektovaniRedovi = self.tabela.selectionModel().selectedRows() for red in selektovaniRedovi: self.nazivi.pop(red.row() - 1) self.kuvarPocetnik.praceneKategorije.pop(red.row() - 1) QApplication.instance().actionManager.informacije.upisiKorisnika() self.refresujTabelu() def dodavanjeNove(self): if self.labela.text().lower() not in self.kategorijeNazivi: msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Potrebno je uneti vec postojecu kategoriju!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return if self.labela.text().lower() in self.nazivi: msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Ne mozete pratiti jednu kategoriju dva puta!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return if (self.labela.text() == ""): msg = QMessageBox(self) msg.setIcon(QMessageBox.Critical) msg.setText("Morate uneti kategoriju!") msg.setWindowTitle("Greska") msg.setStandardButtons(QMessageBox.Ok) msg.exec() return id = QApplication.instance( ).actionManager.receptiMenadzer.postojanjeKategorije( self.labela.text().lower()) self.kuvarPocetnik.praceneKategorije.append(id) self.nazivi.append(self.labela.text().lower()) QApplication.instance().actionManager.informacije.upisiKorisnika() self.refresujTabelu() def refresujTabelu(self): self.tabela = Tabela(len(self.nazivi) + 1, 2) self.tabela.dodajZaglavlja(["Sifra", "Naziv"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 120) brojac = 1 for naziv in self.nazivi: self.tabela.setItem( brojac, 0, QTableWidgetItem( str(self.kuvarPocetnik.praceneKategorije[brojac - 1]))) self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(270, 160) self.grid.addWidget(self.tabela, 1, 1)
def definisiIzgled(self): self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance( ).actionManager.prijavljeniKorisnik self.nazivi = [] for kategorija in self.kuvarPocetnik.praceneKategorije: self.nazivi.append(QApplication.instance( ).actionManager.receptiMenadzer.vratiNazivKategorije(kategorija)) matrica = [ '', 'Pracene kategorije:', '', '', '1', '', '', '4', '', '', 'Dodavanje nove kategorije:', '', '', '2', '', '', '3', '', ] pozicije = [(i, j) for i in range(6) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela(len(self.nazivi) + 1, 2) self.tabela.dodajZaglavlja(["Sifra", "Naziv"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 120) brojac = 1 for naziv in self.nazivi: self.tabela.setItem( brojac, 0, QTableWidgetItem( str(self.kuvarPocetnik.praceneKategorije[brojac - 1]))) self.tabela.setItem(brojac, 1, QTableWidgetItem(naziv)) brojac += 1 self.tabela.setFixedSize(270, 160) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": self.kategorijeNazivi = QApplication.instance( ).actionManager.receptiMenadzer.vratiNaziveKategorija() kompleter = QCompleter(self.kategorijeNazivi) kompleter.setCaseSensitivity(Qt.CaseInsensitive) self.labela = QLineEdit() self.labela.setCompleter(kompleter) self.labela.setFixedSize(180, 20) self.grid.addWidget(self.labela, *pozicija) elif sadrzaj == "3": self.dugme = QPushButton("Dodaj novu kategoriju") self.dugme.setFixedSize(200, 20) self.grid.addWidget(self.dugme) self.dugme.clicked.connect(self.dodavanjeNove) elif sadrzaj == "4": self.brisanje = QPushButton("Izbrisi kategoriju") self.brisanje.setFixedSize(200, 20) self.grid.addWidget(self.brisanje) self.brisanje.clicked.connect(self.brisanjeKategorije) else: labela = QLabel(sadrzaj) labela.setFixedSize(180, 20) self.grid.addWidget(labela, *pozicija)
class SpisakZaKupovinu(QDialog): def __init__(self, parent): super().__init__(parent) self.setModal(True) try: self.initUI() except: traceback.print_exc() self.show() self.exec_() def initUI(self): self.setWindowTitle("Spisak za kupovinu") icon = QIcon("..\slike\ikonica.png") self.setWindowIcon(icon) sadrzaj = "" self.setFixedSize(600, 600) image = QImage("..\slike\spisakPozadina.jpg") sImage = image.scaled(QSize(600, 600)) palette = QPalette() palette.setBrush(QPalette.Window, QBrush(sImage)) self.setPalette(palette) with open("..\slike\stajl.css", "r") as stream: sadrzaj = stream.read() self.setStyleSheet(sadrzaj) self.definisiIzgled() def definisiIzgled(self): self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance().actionManager.prijavljeniKorisnik matrica = ['0', '', '', '', '1', '', '2', '', '', '3', '', '', '4', '', '' ] self.proizvodi = [] self.spisak = QApplication.instance().actionManager.spiskoviMenadzer.vratiSpisak( self.kuvarPocetnik.spisakZaKupovinu ) for kljuc in self.spisak.sastojci.keys(): self.proizvodi.append(self.menadzerSastojci.vratiSastojak(kljuc)) for kljuc in self.spisak.oprema.keys(): self.proizvodi.append(self.menadzerOprema.vratiOpremu(kljuc)) pozicije = [(i, j) for i in range(5) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela(len(self.proizvodi) + 1, 3) self.tabela.dodajZaglavlja(["Naziv", "Tip kol./Marka", "Kolicina"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 160) self.tabela.setColumnWidth(2, 80) brojac = 1 for proizvod in self.proizvodi: if isinstance(proizvod, Sastojak): self.tabela.setItem(brojac, 0, QTableWidgetItem( str(proizvod.naziv))) self.tabela.setItem(brojac, 1, QTableWidgetItem( str(str(proizvod.tipKolicine)) )) self.tabela.setItem(brojac, 2, QTableWidgetItem( str(str(self.spisak.sastojci[str(proizvod.sifra)])) )) else: self.tabela.setItem(brojac, 0, QTableWidgetItem( str(proizvod.naziv))) self.tabela.setItem(brojac, 1, QTableWidgetItem( str(str(proizvod.marka)) )) self.tabela.setItem(brojac, 2, QTableWidgetItem( str(str(self.spisak.oprema[str(proizvod.sifra)])) )) brojac += 1 self.tabela.setFixedSize(385, 400) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": self.narucivanje = QPushButton("Naruci sa sajta") self.grid.addWidget(self.narucivanje, *pozicija) elif sadrzaj == "3": self.slanjeEmail = QPushButton("Slanje spiska na email") self.grid.addWidget(self.slanjeEmail, *pozicija) elif sadrzaj == "4": self.stampanje = QPushButton("Stampanje spiska") self.grid.addWidget(self.stampanje, *pozicija) elif sadrzaj == "0": labela = QLabel('<h6>{0}</h6>'.format('Dodati proizvodi u korpu:')) labela.setFixedSize(180, 20) self.grid.addWidget(labela, *pozicija) else: labela = QLabel(sadrzaj) self.grid.addWidget(labela, *pozicija)
def definisiIzgled(self): self.menadzerSastojci = QApplication.instance().actionManager.sastojciMenadzer self.menadzerOprema = QApplication.instance().actionManager.opremaMenadzer self.grid = QGridLayout() self.setLayout(self.grid) self.kuvarPocetnik = QApplication.instance().actionManager.prijavljeniKorisnik matrica = ['0', '', '', '', '1', '', '2', '', '', '3', '', '', '4', '', '' ] self.proizvodi = [] self.spisak = QApplication.instance().actionManager.spiskoviMenadzer.vratiSpisak( self.kuvarPocetnik.spisakZaKupovinu ) for kljuc in self.spisak.sastojci.keys(): self.proizvodi.append(self.menadzerSastojci.vratiSastojak(kljuc)) for kljuc in self.spisak.oprema.keys(): self.proizvodi.append(self.menadzerOprema.vratiOpremu(kljuc)) pozicije = [(i, j) for i in range(5) for j in range(3)] for pozicija, sadrzaj in zip(pozicije, matrica): if sadrzaj == "1": self.tabela = Tabela(len(self.proizvodi) + 1, 3) self.tabela.dodajZaglavlja(["Naziv", "Tip kol./Marka", "Kolicina"]) self.tabela.setColumnWidth(0, 120) self.tabela.setColumnWidth(1, 160) self.tabela.setColumnWidth(2, 80) brojac = 1 for proizvod in self.proizvodi: if isinstance(proizvod, Sastojak): self.tabela.setItem(brojac, 0, QTableWidgetItem( str(proizvod.naziv))) self.tabela.setItem(brojac, 1, QTableWidgetItem( str(str(proizvod.tipKolicine)) )) self.tabela.setItem(brojac, 2, QTableWidgetItem( str(str(self.spisak.sastojci[str(proizvod.sifra)])) )) else: self.tabela.setItem(brojac, 0, QTableWidgetItem( str(proizvod.naziv))) self.tabela.setItem(brojac, 1, QTableWidgetItem( str(str(proizvod.marka)) )) self.tabela.setItem(brojac, 2, QTableWidgetItem( str(str(self.spisak.oprema[str(proizvod.sifra)])) )) brojac += 1 self.tabela.setFixedSize(385, 400) self.grid.addWidget(self.tabela, *pozicija) elif sadrzaj == "2": self.narucivanje = QPushButton("Naruci sa sajta") self.grid.addWidget(self.narucivanje, *pozicija) elif sadrzaj == "3": self.slanjeEmail = QPushButton("Slanje spiska na email") self.grid.addWidget(self.slanjeEmail, *pozicija) elif sadrzaj == "4": self.stampanje = QPushButton("Stampanje spiska") self.grid.addWidget(self.stampanje, *pozicija) elif sadrzaj == "0": labela = QLabel('<h6>{0}</h6>'.format('Dodati proizvodi u korpu:')) labela.setFixedSize(180, 20) self.grid.addWidget(labela, *pozicija) else: labela = QLabel(sadrzaj) self.grid.addWidget(labela, *pozicija)