Forum » Programiranje » QT Creator in PySide odpiranje novih oken
QT Creator in PySide odpiranje novih oken
DOOM_er ::
Pozdravljeni, ker se iz Cjevskih vod selim v kačje imam par vprašanj okoli knjižnic PySide in orodja QtCreator.
Trenutno pišem neko aplikacijo ki bo skrbela za prijavo uporabnikov preko RFID čitalca in me muči nekaj stvari in sicer:
- Kako in na kakšen način jaz lahko kličem posamezna okna narejena v QT creatorju, štekam da je potrebno držati reference za posamezna okna, toliko da jih pythonov čistilec ne pobriše spotoma ampak me mučijo najbolj osnovne stvari. V prilepljeni kodi imam tabelo windows kamor shranjujem okna ki jih kreiram ko aplikacija teče in vsako okno ima svoje mesto v tabeli. Težava je v tem da mi interpreter javi da spremenljivka windows v razredu CardSwipe ni definirana. Koda je izpeljana iz enega primera, in mi recimo verzija kjer imam samo eno glavno okno normalno deluje, vendar bi jaz ob zagonu aplikacije imel samo okno za prijavo, nakar bi se ko bi se uporabnik prijavil, okno "skrilo" in odprl bi se glaven del programa (svoj ui)
Potem pa imam še vprašanje, kako točno teče program v mainu. Sam sem iz mikrokontrolerskih vod navajen dajati procesor v spanje oziroma narediti neskončno zanko npr. while(1) {}. Ni mi jasno zakaj točno je to sys.exit(app.exec_()) in zakaj se program ne ustavi ko pride do konca kode. Zanima me ozadje
Se opravičujem za butasta vprašanja ampak sam sem grafične programe delal več ali manj samo v Matlabu in LabViewu, ter interfaci za razne Siemensove in Mitsubishijeve HMI-je, kjer so te stvari urejene v ozadju in uporabnik ne potrebuje vedeti natančnega delovanja.
danke danke
Trenutno pišem neko aplikacijo ki bo skrbela za prijavo uporabnikov preko RFID čitalca in me muči nekaj stvari in sicer:
- Kako in na kakšen način jaz lahko kličem posamezna okna narejena v QT creatorju, štekam da je potrebno držati reference za posamezna okna, toliko da jih pythonov čistilec ne pobriše spotoma ampak me mučijo najbolj osnovne stvari. V prilepljeni kodi imam tabelo windows kamor shranjujem okna ki jih kreiram ko aplikacija teče in vsako okno ima svoje mesto v tabeli. Težava je v tem da mi interpreter javi da spremenljivka windows v razredu CardSwipe ni definirana. Koda je izpeljana iz enega primera, in mi recimo verzija kjer imam samo eno glavno okno normalno deluje, vendar bi jaz ob zagonu aplikacije imel samo okno za prijavo, nakar bi se ko bi se uporabnik prijavil, okno "skrilo" in odprl bi se glaven del programa (svoj ui)
Potem pa imam še vprašanje, kako točno teče program v mainu. Sam sem iz mikrokontrolerskih vod navajen dajati procesor v spanje oziroma narediti neskončno zanko npr. while(1) {}. Ni mi jasno zakaj točno je to sys.exit(app.exec_()) in zakaj se program ne ustavi ko pride do konca kode. Zanima me ozadje
Se opravičujem za butasta vprašanja ampak sam sem grafične programe delal več ali manj samo v Matlabu in LabViewu, ter interfaci za razne Siemensove in Mitsubishijeve HMI-je, kjer so te stvari urejene v ozadju in uporabnik ne potrebuje vedeti natančnega delovanja.
#SYSTEM LIBS import sys from PySide.QtGui import * from PySide.QtCore import * #GUI SCRIPTS from mainwindow import Ui_MainWindow from cardswipe import Ui_cardswipe #MODULES from CardID_grabber import * #VARIABLES import variables as var class MachineControlMainView(QMainWindow, Ui_MainWindow): def __init__(self): super(MachineControlMainView, self).__init__() self.setupUi(self) self.assignWidgets() self.setWindowTitle("MachineControl") self.show() def assignWidgets(self): self.bLogoutButton.clicked.connect(self.goPushed) def goPushed(self): cardNum = getCardId() self.lImePriimek.setText(workersList[cardNum]) self.lCardNumber.setText(cardNum) global IDnum global IDnumber IDnum = [] IDnumber = "" class CardSwipe(QWidget, Ui_cardswipe): global windows def __init__(self): super(CardSwipe, self).__init__() self.setupUi(self) self.setWindowTitle("Prijava") self.show() self.goLogin() def goLogin(self): global cardNum cardNum = getCardId() self.hide() windows[1].show() windows[0].hide() cardNum = "0" windows = [] if __name__ == '__main__': app = QApplication(sys.argv) cardSwipe = CardSwipe() mainWin = MachineControlMainView() windows = [] windows.append(cardSwipe) windows.append(mainWin) windows[0].show() sys.exit(app.exec_())
danke danke
Robots will steal your job. But that's OK
Karlos ::
Ni mi jasno zakaj točno je to sys.exit(app.exec_()) in zakaj se program ne ustavi ko pride do konca kode. Zanima me ozadje
s tem zaženeš main QT thread, ki pač teče dokler ga ne ustaviš
Sai Baba: "Dam vam to, kar hočete, da boste hoteli to, kar vam želim dati."
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [Python3] Izvajanje ukazov po določenem časuOddelek: Programiranje | 1466 (1076) | noraguta |
» | Python - pomoč (strani: 1 2 3 )Oddelek: Programiranje | 18158 (8906) | black ice |
» | Ruby + Glade ... težaveOddelek: Programiranje | 1619 (1412) | sebatronic |
» | python -slovarOddelek: Programiranje | 3140 (2119) | Valex86 |
» | python pomočOddelek: Programiranje | 1805 (1625) | jype |