STDIN unter perl-tk

STDIN unter perl-tk

am 15.01.2007 10:46:08 von Frank Kulow

Hallo NG,

kann ich ein TK Fenster erzeugen, daß sich wie die Kommandozeile verhält?

STDOUT mittels tie in ein Textfenster legen geht, aber auch STDIN?


(Programm soll im Kommandozeilenmodus oder GUImodus laufen können, was
beim Programmaufruf per Argument festgelegt werden soll)



Danke

Frank

Re: STDIN unter perl-tk

am 15.01.2007 23:07:21 von Slaven Rezic

Frank Kulow writes:

> Hallo NG,
>
> kann ich ein TK Fenster erzeugen, daß sich wie die Kommandozeile verhält?
>
> STDOUT mittels tie in ein Textfenster legen geht, aber auch STDIN?
>

Soweit ich weiß, get STDIN per tie nicht.

>
> (Programm soll im Kommandozeilenmodus oder GUImodus laufen können, was
> beim Programmaufruf per Argument festgelegt werden soll)
>

Soll jede mit Return abgeschlossene Zeile im Textfenster zu einer
Aktion führen? Dann reicht es vielleicht, wenn du bindest und
die Zeile vor dem Cursor auswertest.

--
Slaven Rezic - slaven rezic de

Tk-AppMaster: a perl/Tk module launcher designed for handhelds
http://tk-appmaster.sf.net

Re: STDIN unter perl-tk

am 17.01.2007 15:27:58 von Frank Kulow

> Soll jede mit Return abgeschlossene Zeile im Textfenster zu einer
> Aktion führen? Dann reicht es vielleicht, wenn du bindest und
> die Zeile vor dem Cursor auswertest.
>

Es ist etwas komplizierter, da z.T. auch ungepufferte Eingaben (Readkey)
ausgewertet werden. Da komme ich wohl nicht drum rum, anykey abzufangen
und und je nach anstehender Anfrage auf Enter zu warten oder sofort zu
handeln.


Ist denn eigentlich Perl-Tk das Mittel der Wahl für eine grafische
Oberfläche oder gibt es bessere Alternativen?

Danke Frank

Re: STDIN unter perl-tk

am 17.01.2007 22:30:47 von Slaven Rezic

Frank Kulow writes:

> > Soll jede mit Return abgeschlossene Zeile im Textfenster zu einer
> > Aktion führen? Dann reicht es vielleicht, wenn du bindest und
> > die Zeile vor dem Cursor auswertest.
> >
>
> Es ist etwas komplizierter, da z.T. auch ungepufferte Eingaben
> (Readkey) ausgewertet werden. Da komme ich wohl nicht drum rum, anykey
> abzufangen und und je nach anstehender Anfrage auf Enter zu warten
> oder sofort zu handeln.

Oder brauchst du vielleicht eine vollständige Terminalemulation?

> Ist denn eigentlich Perl-Tk das Mittel der Wahl für eine grafische
> Oberfläche oder gibt es bessere Alternativen?

Je nachdem, wie du deine Prioritäten setzt (Reife,
Portabilität/Verfügbarkeit, Support, State-of-the-Art-Technology ...)
kann die Antwort positiv oder negativ ausfallen. Alternativen wären
Gtk2, Wx, Prima, Win32::GUI ...

Gruß,
Slaven

--
Slaven Rezic - slaven rezic de

tkrevdiff - graphical display of diffs between revisions (RCS, CVS or SVN)
http://ptktools.sourceforge.net/#tkrevdiff

Re: STDIN unter perl-tk

am 18.01.2007 10:58:40 von Frank Kulow

>Slaven Rezic schrieb:
> Oder brauchst du vielleicht eine vollständige Terminalemulation?

Ja.

Das Programm soll weiterhin auf dem Terminal lauffähig bleiben aber
ggfs. etwas Gui-Luxus drum rum. Hatte das auch schon mal TK-Oberfläche +
Kommandozeile (Tk lief als Child-Prozeß, Kommunikation über Pipes). Aber
nach einem Update wollte Tk kein Kind mehr sein. Außerdem hätte ich das
Terminal gern im selben Fenster wie die anderen Gui-Elemente.



> Alternativen wären
> Gtk2, Wx, Prima, Win32::GUI ...
>

gibts dazu eine Kurzkritik? Bei Tk finde ich die Doku schwierig.
Meine Aktualitätsbedenken rühren von den meist nicht jungen findbaren
Beispielen.

Danke und sächsische Grüße

Frank

Re: STDIN unter perl-tk

am 18.01.2007 19:09:23 von Slaven Rezic

Frank Kulow writes:

> >Slaven Rezic schrieb:
> > Oder brauchst du vielleicht eine vollständige Terminalemulation?
>
> Ja.
>
> Das Programm soll weiterhin auf dem Terminal lauffähig bleiben aber
> ggfs. etwas Gui-Luxus drum rum. Hatte das auch schon mal TK-Oberfläche
> + Kommandozeile (Tk lief als Child-Prozeß, Kommunikation über Pipes).
> Aber nach einem Update wollte Tk kein Kind mehr sein. Außerdem hätte
> ich das Terminal gern im selben Fenster wie die anderen Gui-Elemente.
>

Je nachdem, wie komplex deine Anforderungen an ein Terminal sind, wird
die Terminalemulation schwieriger zu implementieren. Einen vi wirst du
in einem Tk::Text-Widget schwerlich ohne viel zusätzlicher
Implementation unterbringen können.

Meinst du mit Update Tk 800 -> Tk 804? Arbeitest du unter Windows oder
Unix?

>
>
> > Alternativen wären
> > Gtk2, Wx, Prima, Win32::GUI ...
> >
>
> gibts dazu eine Kurzkritik?

Zum Beispiel hier: http://www.perlmonks.org/?node_id=108708

Ich halte mich aus einer Vergleichsdiskussion lieber heraus, weil ich
voreingenommen bin :-)

> Bei Tk finde ich die Doku schwierig.

Da wirst du bei anderen GUI-Libraries noch mehr enttäuscht werden
(z.B. Wx). Für Perl/Tk existieren wenigstens Bücher.

> Meine Aktualitätsbedenken rühren von den meist nicht jungen findbaren
> Beispielen.

Das liegt vielleicht auch daran, dass bei Tk in den letzten Jahren
nichts passiert ist (das letzte Release war vor fast drei Jahren).
Aber ich arbeite daran, dass es in naher Zukunft ein Tk 804.028 geben
wird.

Gruß,
Slaven

--
Slaven Rezic - slaven rezic de

Berlin Perl Mongers - http://berlin.pm.org

Re: STDIN unter perl-tk

am 18.01.2007 23:15:35 von Ch Lamprecht

Slaven Rezic schrieb:
> Frank Kulow writes:
>

>>
>>>Alternativen wären
>>>Gtk2, Wx, Prima, Win32::GUI ...
>>>
>>
>>gibts dazu eine Kurzkritik?
>
>
> Zum Beispiel hier: http://www.perlmonks.org/?node_id=108708
>
> Ich halte mich aus einer Vergleichsdiskussion lieber heraus, weil ich
> voreingenommen bin :-)
>
>
>>Bei Tk finde ich die Doku schwierig.
>
>
> Da wirst du bei anderen GUI-Libraries noch mehr enttäuscht werden
> (z.B. Wx). Für Perl/Tk existieren wenigstens Bücher.
>

Und eine hilfsbereite c.l.p.tk ;)

Christoph


--

perl -e "print scalar reverse q/ed.enilno@ergn.l.hc/"

Re: STDIN unter perl-tk

am 19.01.2007 12:36:03 von Frank Kulow

>Slaven Rezic schrieb:
>
> Je nachdem, wie komplex deine Anforderungen an ein Terminal sind, wird
> die Terminalemulation schwieriger zu implementieren. Einen vi wirst du
> in einem Tk::Text-Widget schwerlich ohne viel zusätzlicher
> Implementation unterbringen können.

Ganz so weit wollte ich es nicht treiben, aber blockierungsfreies Lesen
sollte möglich sein (was ja bei Tk nicht das Problem sein sollte, eher
bei anderen Emulationen z.B. shell im Emacs).

>
> Meinst du mit Update Tk 800 -> Tk 804?

möglich, jetzt ist es Tk 804

Arbeitest du unter Windows oder
> Unix?

im Moment ersteres, universell einsetzbar wäre besser.




Gruß Frank