Ein Terminal-ähnliches Fenster für wxWidgets?

8

Ich möchte meiner wxWidgets-GUI ein Element hinzufügen, das sich wie ein Terminalemulator verhält. Nicht in Bezug auf eine Shell, die Befehle ausführt, sondern nur das Eingabe-Ausgabe-Setup einer Anwendung, die in einem Terminal ausgeführt wird.

Grundsätzlich sind die Anforderungen:

Streaming-Eingabe / Ausgabe: Wenn Sie ein Zeichen eingeben, wird es einem Eingabestream hinzugefügt, und wenn etwas an das Terminal weitergeleitet wird, wird es sofort ausgedruckt.

Keine Bearbeitung: Sobald Sie ein Zeichen eingegeben haben, ist es permanent dort, da es wahrscheinlich von der Anwendung verbraucht wurde, die im Terminal läuft.

Eine Art Scrollen (auch wenn es nur ein paar Zeilen oder etwas zeigt).

Es wäre schön, wenn es etwas gibt, das dies bereits tut, aber auch Vorschläge, wie dies mit bereits vorhandenen Steuerelementen wie wxTextCtrl implementiert werden könnte, wären ebenfalls willkommen.

    
Jeremy Salwen 20.01.2010, 00:38
quelle

2 Antworten

3

Ich weiß, das ist ein paar Wochen zu spät, aber hoffentlich ist es immer noch nützlich. Ich habe ein Projekt namens Chameleon, das ein wxWidgets-basiertes VT100-Terminal-Widget verwendet, das wiederum auf einem Projekt namens taTelnet basiert. Die Chameleon-Quelle ist auf meiner Website verfügbar ( Download-Seite hier ). Nicht sicher, ob es genau das ist, wonach Sie suchen, aber es könnte Ihnen einige Ideen geben. Bitte lassen Sie mich wissen, wenn Sie Fragen dazu haben.

    
markerikson 07.02.2010, 02:40
quelle
2

wxWidgets unterstützt das Umleiten von STDOUT zu einer wxTextCtrl über wxStreamToTextRedirector . Wie bei der Eingabe könnten Sie das OnChar-Ereignis in einer wxTextCtrl-abgeleiteten Klasse überschreiben, um dies zu behandeln.

    
Nathan Osman 20.01.2010 00:47
quelle