2017-02-17 5 views
1
zu einem PyQT5 QTextEdit gedruckt ist

Ich bin ein Prozess ausgeführt wird, die Text wie folgt zu einem QTextEdit Box druckt:einen String-Format, das

b'Usage: youtube-dl [Optionen] URL [URL .. .] \ r \ n \ r \ nOptions: \ r \ n Allgemeine Optionen: \ r \ n -h, --help

ich den Text zu formatieren, so dass sie entweder entfernt die n \ r \ stuff und das "b" am Anfang jeder Zeile, oder macht die eigentliche Formatierung wie das Starten in einer neuen Zeile, wenn dort "\ n" steht. Das b 'ist jedes Mal da, also benutze ich string [2:], um das zu lösen. (Das Entfernen der beiden ersten Zeichen im Grunde genommen) Aber das kümmert sich nicht um das andere Problem.

Ich bin mir nicht sicher, ob QTextEdit dies alleine oder mit einer PyQT-Funktion tun kann, oder wenn ich etwas anderes importieren muss, nur um es zu entfernen. Es sei denn, es gibt eine integrierte Python-Funktion, die das lösen kann, von der ich nichts weiß.

Für Code, hier ist die Erstellung der TextEdit, sowie die Funktion, die den Text an die Box anfügt.

self.edit = QTextEdit() 
self.edit.setReadOnly(True) 
self.edit.setWindowTitle("QTextEdit Standard Output Redirection") 
self.edit.append('Welcome!\n\nAdd video url, or load from text file.') 

Anfügen Funktion:

self.edit.append(str(self.readAllStandardOutput())[2:]) 
+2

'Linien = self.readAllStandardOutput(). Data(). Decode()'. – ekhumoro

+0

Danke @Ekhumoro! Das funktioniert! Ich habe einfach das '.data(). Decode()' an das Ende von readAll ...() angehängt und es funktionierte großartig. – Thomasedv

Antwort

0

ich here glauben ist ein einfaches Beispiel, wo append Funktion arbeitet wie Sie wollen. Die Funktion formatiert korrekt Zeilenumbrüche und all die anderen Dinge (wie man sehen kann, wenn man den spam spam... String in handleTest() durch den String ersetzt).

Allerdings bin ich nicht wirklich sicher, was die b' eigentlich tun sollte, deshalb empfehle ich, es zu entfernen (wie Sie bereits tun).

Verwandte Themen