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