Forum: PC Hard- und Software GUI-Editor für TK gesucht


von Uhu U. (uhu)


Lesenswert?

Ich suche einen graphischen Editor - möglichst unter Linux lauffähig -, 
der TK-Code erzeugt.

Hat jemand einen Tipp?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Meinst du einen application builder?  Habe vor Jahren mal XF benutzt,
keine Ahnung, wie gut oder schlecht das Teil mittlerweile ist.

von Uhu U. (uhu)


Lesenswert?

Jörg Wunsch schrieb:
> Meinst du einen application builder?

Ich suche was, womit ich die graphischen Elemente für ein GUI 
zusammenklicken kann, das als Ausgabe TCL-Code, oder noch besser 
Ruby/TK-Code erzeugt. Weiter nichts.

Wo finde ich denn XF?

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uhu Uhuhu schrieb:

> Ich suche was, womit ich die graphischen Elemente für ein GUI
> zusammenklicken kann, [...]

OK, das ist das, was ich als "application builder" kenne.

> Wo finde ich denn XF?

Gugel meint:

ftp://ftp.tcl.tk/pub/tcl/mirror/ftp.procplace.com/sorted/packages-7.6/gr 
aphics/xf4.0/xf/index.html

Gugel spuckte mir dabei nebenbei noch aus, dass es "tkproe" (auf
sourceforge) gibt, das offenbar in die gleiche Kategorie fällt.
Keine Ahnung, ob es was taugt.  Der einzige application builder,
den ich bislang erlebt habe und der einen nicht sofort dazu bringt,
am Ende doch gleich alles mit der Hand zu zimmern, ist der von Qt.

von Uhu U. (uhu)


Lesenswert?

TKproE hab ich zum Laufen bekommen - danke für den Tipp.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uhu Uhuhu schrieb:
> TKproE hab ich zum Laufen bekommen - danke für den Tipp.

Schreib mal bitte, wenn du dich eingearbeitet hast, ob das Teil was
taugt.

von Uhu U. (uhu)


Lesenswert?

Als reiner Resourcen-Editor taugt das Ding nicht, denn so viel ich 
gesehen habe, bildet es nur eine Klickschicht zwischen TK und dem User.

Ich hatte gehofft, daß man sich damit nicht weiter mit der 
TK-Philosophie beschäftigen muß, sondern einfach so ähnlich wie bei den 
Resource-Editoren unter Windows was graphisch entwerfen kann und zum 
Schluß ein Resource-Skript bekommt.

Letztlich ist es für kleine Sachen einfacher, das GUI aus Beispielen 
zusammenzupasten.

Eigentlich ist TK sehr simpel. Das Problem ist eher, einen Einstieg zu 
finden, der einen nicht mit ewig viel Bla-blah zuschwallt und darüber 
wesentliche Kleinigkeiten vergißt.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Das Wichtigste, was man bei Tk verstanden haben muss, ist die Funktion
der Geometrie-Manager.  Die bestimmt im Großen und Ganzen auch, in
welcher Weise man die Widget-Hierarchie aufbauen muss, damit das
Layout am Ende die gewünschte Funktion bekommt.  In dieser Beziehung
ist Tk etwas "popelig": man muss oft genug noch einen Container mehr
dazwischen schieben, damit sich die Applikation am Ende auch
vernünftig in der Größe ändern lässt.

Ein Manko zumindest von XF war (und ist es vermutlich nach wie vor),
dass es gleich den fertigen Code schreiben will.  Damit muss man den
dann hinterher auch wieder einlesen, ohne aber den Nutzercode dabei
zu zerstören.  Dieser Spagat funktioniert nur bedingt, und ab einer
bestimmten Entwicklungsstufe kannst du eigentlich nur noch den
Sourcecode selbst editieren.

Keine ahnung, wie TKproE in dieser Hinsicht ist.  Andere application
builder wie Qt's designer oder GTK's glade speichern die Konfiguration
separat in einer eigenen Datei, das funktioniert in der Praxis besser.
Qt hat auch nicht so viel Kuddelmuddel mit dem Geometriemanagement
wie Tk, die kommen mit viel weniger zwischengeschobenen Containern
aus.

von Uhu U. (uhu)


Angehängte Dateien:

Lesenswert?

TKproE soll sogar existierende Skripte importieren und weiter bearbeiten 
können. Das Ganze findet im Kontext von TKproE statt.

Ich habe mal die Doku angehängt. Leider ist sie als Einführung nicht gut 
geeignet, aber einen Überblick gibt sie alle mal.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Das Wichtigste, was man bei Tk verstanden haben muss, ist die Funktion
> der Geometrie-Manager.  Die bestimmt im Großen und Ganzen auch, in
> welcher Weise man die Widget-Hierarchie aufbauen muss, damit das
> Layout am Ende die gewünschte Funktion bekommt.  In dieser Beziehung
> ist Tk etwas "popelig": man muss oft genug noch einen Container mehr
> dazwischen schieben, damit sich die Applikation am Ende auch
> vernünftig in der Größe ändern lässt.

Das war in den Anfangszeiten so - wobei der Packer auch Vorteile hat.

Für übliche Dinge (wie Dialogfenster) benutzt aber schon lange den 
Grid-Manager.

Place gibt es auch noch, will man aber meist nicht wirklich.

Ich habe Dinge wie TkProE und wie sie alle hießen, nie benutzt - per 
Skript bin ich deutlich schneller und da Änderungen zur Laufzeit kein 
Problem sind ...

Wenn das dann so aussieht, wie ich es haben will, einfach Skript 
aufrufen, das die Parameter der Elemente ausliest und diejenigen, die 
von den Voreinstellungen abweichen, ausgibt - fertig. Schon hat man 
seine "Ressourcendatei".

Bei mir ist Tk sozusagen sein eigener Ressourceneditor :-)

Chris D.

von Uhu U. (uhu)


Lesenswert?

Gibts irgendwo eine schöne kompakte Einführung in TK?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Uhu Uhuhu schrieb:
> Gibts irgendwo eine schöne kompakte Einführung in TK?

Ich hab damals mit dem "Original" von Ousterhout gelernt - das ist 
heutzutage aber etwas veraltet.

Ein Muss ist meiner Meinung nach das Buch von Welch/Hobbs
"Practical Programming in Tcl and Tk". Viele Beispiele und gut gelungene 
Einführungen.

Online ist wohl dieses Tutorium ganz brauchbar:

http://www.tkdocs.com/tutorial/index.html

Ansonsten wühl Dich mal durch wiki.tcl.tk - da gibt es tonnenweise 
Beispiele und weitere Links.

Viel zu lernen ist an Tcl selbst eigentlich nicht - die Sprache ist so 
einfach und orthogonal aufgebaut, dass im Prinzip alles, was man wissen 
muss, auf eine DIN-A4-Seite passt.

Chris D.

Edit: Ähm, der Link der aus dem Buchtitel generiert wird, ist natürlich 
veraltet - das Buch gibt es bereits in neuerer Auflage.

von Uhu U. (uhu)


Lesenswert?

Danke für die Links - besonders das Tutorial. Netterweise läßt es sich 
auch über Ruby aus...

Ich will TK zusammen mit Ruby benutzen, eigentlich nur, um bei Bedarf 
mal eben ein paar kleine GUI-Skripte stricken zu können.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Chris D. schrieb:
> Für übliche Dinge (wie Dialogfenster) benutzt aber schon lange den
> Grid-Manager.

OK, da habe ich dann schon kaum noch Tk gemacht, als der aufkam. ;-)
Hast du dafür ein kurzes Beispiel parat?

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:
> Chris D. schrieb:
>> Für übliche Dinge (wie Dialogfenster) benutzt aber schon lange den
>> Grid-Manager.
>
> OK, da habe ich dann schon kaum noch Tk gemacht, als der aufkam. ;-)

Verräter! Den gibt es aber schon seit 1996 ;-)

> Hast du dafür ein kurzes Beispiel parat?

Kurze Einführung: http://www.tkdocs.com/tutorial/grid.html

Prinzip ist, dass die Fläche durch ein Gitter ("Ach?" ;-) unterteilt 
wird. Man kann dann Zellen zusammenfassen, in der Breite festlegen oder 
flexibel halten, Elemente rechts, links, oben unten "festkitten" usw.

Im Prinzip das, was man sich für XHTML und CSS wünschen würde seufz

Chris D.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Chris D. schrieb:

> Kurze Einführung: http://www.tkdocs.com/tutorial/grid.html

Danke!  Da steht auch die Erklärung, warum man grid früher nicht
groß kannte:

Grid was first introduced to Tk in 1996, several years after Tk became 
popular, and took a while to catch on. Before that, developers had 
always used "pack" to do constraint-based geometry management. When grid 
came out, many developers kept using pack, and you'll still find it used 
in many Tk programs and documentation. While there's nothing technically 
wrong with it, the algorithm's behavior is often hard to understand. 
More importantly, because the order that widgets are packed is 
significant in determining layout, modifying existing layouts can be 
more difficult.

von Chris D. (myfairtux) (Moderator) Benutzerseite


Lesenswert?

Jörg Wunsch schrieb:

> Danke!  Da steht auch die Erklärung, warum man grid früher nicht
> groß kannte:
>
> Grid was first introduced to Tk in 1996, several years after Tk became
> popular, and took a while to catch on. Before that, developers had
> always used "pack" to do constraint-based geometry management. When grid
> came out, many developers kept using pack, and you'll still find it used
> in many Tk programs and documentation. While there's nothing technically
> wrong with it, the algorithm's behavior is often hard to understand.
> More importantly, because the order that widgets are packed is
> significant in determining layout, modifying existing layouts can be
> more difficult.

Ja :-) Der Mensch ist einfach ein Gewohnheitstier, oder:

"Watt der Bauer nit kennt, datt frisster nich'!"

Wirklich umgestiegen bin ich auch erst 1998.

Chris D.

von Uhu U. (uhu)


Lesenswert?

Jetzt noch eine Frage an die TK-Experten:
Beim Anlegen des Fensters kann man eine Fensterüberschrift angeben. Kann 
man die auch nachträglich ändern? Wie?

von tclmen (Gast)


Lesenswert?

$window configure -title $title

von Uhu U. (uhu)


Lesenswert?

Danke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.