EVA Prinzip bei Klassen
Verfasst: Dienstag 8. Juni 2010, 15:28
Hallo Zusammen,
ich habe ein Problem beim verarbeiten von 2 Klassen.
Ich habe ,grob gesagt, 2 Klassen, die eine baut mir eine UI (Ausgabe) und die andere ist Eingabe,Verarbeitung.
Nun erzeuge ich meine UI und initialisiere damit auch gleich meine E:V. Die UI baut sich aber erst, wenn E:V fertig sind, das möchte ich aber nicht, da die E:V in einer schleife laufen.
Hier mein Code:
kann mir jemand einen Tip geben, wie ich das besser lösen kann.
Die Ui soll einfach nur laufen und alle 5 sekunden werden die Daten neu eingelesen und die UI soll sich neu Updaten.
Kann mal dabei die Zeit als Event benutzen?
Vielen Dank für jede Antwort
MfG
Honk
ich habe ein Problem beim verarbeiten von 2 Klassen.
Ich habe ,grob gesagt, 2 Klassen, die eine baut mir eine UI (Ausgabe) und die andere ist Eingabe,Verarbeitung.
Nun erzeuge ich meine UI und initialisiere damit auch gleich meine E:V. Die UI baut sich aber erst, wenn E:V fertig sind, das möchte ich aber nicht, da die E:V in einer schleife laufen.
Hier mein Code:
Code: Alles auswählen
class MyGuiClass(QtGui.QMainWindow):
def __init__(self, uiRef):
QtGui.QMainWindow.__init__(self, None)
self.uiRef = uiRef
uiRef.setupUi(self)
self.blub = DoIt()
self.uiRef.comboBox.addItem("AV42_test")
self.uiRef.comboBox.addItem("AV42_work")
def changeState(self, objectName, state):
self.uiRef.__getattribute__(objectName).setStyleSheet(self.getImage(state))
def getImage(self, state):
if state == '1':
return green
elif state == '0':
return blue
else:
return black
def bla(self):
i = 3
while i > 0:
i= i-1
self.blub.doChange()
time.sleep(2)
def killer(self):
self.blub.killAll()
class DoIt():
def __init__(self):
global lItems
lItems = self.getItems()
clientPath="a2.out"
global client
client = subprocess.Popen(clientPath,
shell=True,
stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
if not os.path.exists(clientPath):
print "ERROR: Can't find ", clientPath
print "Bye..."
sys.exit()
#--------------------------Main---------------------------#
app = QtGui.QApplication(sys.argv)
uiBauer = av42_create.Ui_MainWindow()
hauptGui = MyGuiClass(uiBauer)
hauptGui.show()
hauptGui.bla()
hauptGui.killer()
app.exec_()
Die Ui soll einfach nur laufen und alle 5 sekunden werden die Daten neu eingelesen und die UI soll sich neu Updaten.
Kann mal dabei die Zeit als Event benutzen?
Vielen Dank für jede Antwort
MfG
Honk