Ich suche einen graphischen Editor - möglichst unter Linux lauffähig -, der TK-Code erzeugt. Hat jemand einen Tipp?
Meinst du einen application builder? Habe vor Jahren mal XF benutzt, keine Ahnung, wie gut oder schlecht das Teil mittlerweile ist.
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?
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.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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.
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?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.