2010-01-20 14 views
8

Ich bin auf der Suche nach einem Element zu meiner wxWidgets GUI, die sich wie ein Terminalemulator verhält. Nicht in Bezug auf eine Shell, die Befehle ausführt, sondern nur die Eingabe-Ausgabe-Konfiguration einer Anwendung, die in einem Terminal ausgeführt wird.Ein terminalähnliches Fenster für wxWidgets?

Grundsätzlich sind die Anforderungen:

Streaming Eingabe/Ausgabe: Wenn Sie ein Zeichen eingeben, wird es hinzugefügt, um einen Eingangsstrom, und wenn etwas an das Terminal geleitet wird, druckt es sofort aus.

Keine Bearbeitung: Sobald Sie ein Zeichen eingegeben haben, ist es permanent dort, da es wahrscheinlich von der Anwendung verbraucht wurde, die im Terminal ausgeführt wird.

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.

+0

Jeremy, wenn dies deine Antwort wäre https://github.com/jeremysalwen/TerminalWx - wäre es nicht eine Antwort wert? Ich bin an dem aktuellen Status Ihrer Komponente interessiert. Letzte Änderungen waren im Dezember 2013, letzte (und einzige) Veröffentlichung im Jahr 2012 ... – Wolf

Antwort

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 page here). Nicht sicher, ob es genau das ist, wonach Sie suchen, aber es könnte Ihnen einige Ideen geben. Bitte lassen Sie es mich wissen, wenn Sie Fragen dazu haben.

+0

Danke, das ist * genau * wonach ich suche! Ich werde mich darum kümmern und Ihnen alle Fragen stellen, die ich vielleicht habe. –

+0

Hinweis: Der Quellcode befindet sich in einer flachen Verzeichnisstruktur, aber das Projekt erwartet, dass es sich in Ordnern befindet. –

+0

Hmm. Vielleicht habe ich einen Fehler gemacht, als ich es zappte. Danke für die Bemerkung. – markerikson

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 von WxTextCtrl abgeleiteten Klasse überschreiben, um dies zu behandeln.