» »

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 :D
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 ::

DOOM_er je izjavil:

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 :D


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 ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[Python3] Izvajanje ukazov po določenem času

Oddelek: Programiranje
211427 (1037) noraguta
»

Python - pomoč (strani: 1 2 3 )

Oddelek: Programiranje
10317801 (8549) black ice
»

Ruby + Glade ... težave

Oddelek: Programiranje
91578 (1371) sebatronic
»

python -slovar

Oddelek: Programiranje
223098 (2077) Valex86
»

python pomoč

Oddelek: Programiranje
111762 (1582) jype

Več podobnih tem