Ich will einen cmd.exe ersatz schreiben, weil mir das nicht so ganz gefällt. Ich habe jetzt Ein fenster mit einem textedit und will dort eingaben parsen. Ich habe einen QThread der die eingabe parst. Der Code sieht so aus:
Code: Alles auswählen
class SThread(QtCore.QThread):
updateText = QtCore.pyqtSignal(QtCore.QString, int, name="updateText")
def __init__(self):
QtCore.QThread.__init__(self)
self.input = None
self.command = None
self.index = None
self.prefix = None
def __del__(self):
self.wait()
def run(self):
self.input.userEditable = False
self.input.setEnabled(False)
p = Popen(self.command, shell=True, stdout=PIPE)
while True:
line = p.stdout.readline()
if not line:
break
self.updateText.emit(line, self.index)
self.input.update()
#self.terminal.write(line, self.index)
self.input.setEnabled(True)
self.updateText.emit(self.prefix, self.index)
Code: Alles auswählen
def execute(self, command, index=None):
if index is None:
index = self.tabWidget.currentIndex()
t = SThread()
t.command = command
t.index = index
t.input = self.textEdits[index]
t.updateText.connect(self.write)
t.prefix = self.getPrefix()
t.start()
print "asdf"