Ich versuche gerade ohne viel von Tk zu verstehen, folgendes zu erreichen: Ich möchte gerne eine Liste von mehrzeiligen Textfragmenten als Liste darstellen, von denen man jeweils eines auswählen kann. Ich kenne Swing oder Flex. Dort würde ich eine Liste mit speziellen Cell bzw. Item Renderern benutzen. Doch wie geht man bei Tk vor?
`Listbox` scheint nur Strings zu können. `Message` scheint in der Lage zu sein, einen mehrzeiligen String anzuzeigen. Diese schaffe ich auch untereinander anzuordnen? Gibt es ein "ScrollPane" oder ähnliches?
Stefan
Multiline-Listbox?
Hallo sma,
auch auf die Gefahr hin, Deine Selbstkasteiung zu unterbrechen, vielleicht entspricht das Folgende grob Deinen Vorstellungen:
http://paste.pocoo.org/show/142936/
yipyip
auch auf die Gefahr hin, Deine Selbstkasteiung zu unterbrechen, vielleicht entspricht das Folgende grob Deinen Vorstellungen:
http://paste.pocoo.org/show/142936/
yipyip
Danke yipyip, das geht tatsächlich in die richtige Richtung. Man müsste jetzt noch eine explizite Selektion verwalten... sollte nicht schwer sein.
Aber nun habe ich schon eine Lösung in Java und ich werde mich vielleicht noch mal an einer mit Cappucino und/oder Flex zusammen mit AIR versuchen, einfach weil's geht und interessant klingt. Mit Python & GUIs werde ich glaube ich nicht warm. Swing und Flex kenne ich wenigstens schon und Cocoa- (bzw. Cappucino-) Programmierung wollte ich eh schon immer mal lernen.
Stefan
Aber nun habe ich schon eine Lösung in Java und ich werde mich vielleicht noch mal an einer mit Cappucino und/oder Flex zusammen mit AIR versuchen, einfach weil's geht und interessant klingt. Mit Python & GUIs werde ich glaube ich nicht warm. Swing und Flex kenne ich wenigstens schon und Cocoa- (bzw. Cappucino-) Programmierung wollte ich eh schon immer mal lernen.
Stefan
Habe ich gesehen. Daher sagte ich ja "sollte nicht schwer sein". Doch Tk ist hässlich, braucht bei meiner MacPorts-Version von Python immer einen X-Server und ist hässlich. Hatte ich schon erwähnt, dass das UI fremdartig unter OS/X aussieht? Und hässlich?
Ich hätte halt gedacht, die Zeiten, wo eine Listbox nur fest verdrahtet einen String anzeigen kann, wären mit Windows 95 oder so gestorben.
Swing stammt von 1997 oder so (und basiert auf Ideen von VisualWorks Smalltalk von 1994, was auf ObjectWorks basiert, was aus den frühen 90er oder späten 80ern sein müsste und auf Smalltalk-80 basiert, was 1986 produktifiziert wurde) und konnte bereits Listen mit beliebigen Komponenten anzeigen. Irgendwie habe ich immer wieder das Gefühl, UIs entwickeln sich rückwärts und irgendwann preisen wir alle wieder die 80x24-Konsole oder noch besser den Teletype-Fernschreiber.
Stefan
Ich hätte halt gedacht, die Zeiten, wo eine Listbox nur fest verdrahtet einen String anzeigen kann, wären mit Windows 95 oder so gestorben.
Swing stammt von 1997 oder so (und basiert auf Ideen von VisualWorks Smalltalk von 1994, was auf ObjectWorks basiert, was aus den frühen 90er oder späten 80ern sein müsste und auf Smalltalk-80 basiert, was 1986 produktifiziert wurde) und konnte bereits Listen mit beliebigen Komponenten anzeigen. Irgendwie habe ich immer wieder das Gefühl, UIs entwickeln sich rückwärts und irgendwann preisen wir alle wieder die 80x24-Konsole oder noch besser den Teletype-Fernschreiber.
Stefan
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Naja, wenn du auch Tk nutzt... wenn ich das so angehen würde, dann müsste ich auch sagen dass ich mit "Python & GUIs" nicht warm werde, weil Tk einfach World of Pain ist.sma hat geschrieben:Mit Python & GUIs werde ich glaube ich nicht warm.
Hint: Modernes GUI-Toolkit nutzen. Für dich bietet sich auf dem Mac OS X Qt an - das hatte ich letztens in der Arbeit ausprobiert und ist gar nicht mal so übel. Im Gegensatz zu Tk fühlt es sich immerhin robust an.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Bin nun wahrlich kein Tkinter Zelot, aber das Tk(inter) eine 'World of Pain' ist, kann ich beim besten Willen nicht nachvollziehen. In Tkinter zu programmieren ist doch Fun pur. Kaum ist der Editor geoeffnet, kann man sich kaum dagegen wehren, schnell eine Tkinter-Gui zu schreiben...
- Tkinter funktioniert *einfach*.
- Tkinter *funktioniert* einfach.
Und seit mit Tk8.5 die Fonts antialiased sind, finde ich Tkinter auch nicht mehr haesslich.
yipyip
- Tkinter funktioniert *einfach*.
- Tkinter *funktioniert* einfach.
Und seit mit Tk8.5 die Fonts antialiased sind, finde ich Tkinter auch nicht mehr haesslich.
yipyip
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Eben nicht: enable/disable funktioniert keineswegs einfach, Locken der GUI bei Modalen Dialogen tut nicht, sieht unter Windows und Linux auch mit ttk noch relativ hässlich auch, weil ttk nichtmal alle Widgets styled (und selbst wenn dann ist der GTK+-Stil erstens komisch, so komisch wie das GTK-LookAndFeel von Java und zweitens fürchterlich langsam). TkTable ist ebenfalls hässlich und seltsam, da würde man sich auch ein anständiges Widget wünschen.
Achja, die File-Dialoge sind unter Linux direkt noch schlechter als die von GTK+, man kann keine Selection über mehr als eine Dateiendung machen und das Auswählen von Ordnern ist dermaßen unintuitiv, dass ich vermute dass die Kunden das schlichtweg nicht auf die Reihe bekommen.
Und dann mache ich Qt Designer oder Glade auf und baue mir meine GUI visuell zusammen und bin fast fertig, zudem bekomme ich eine UI-Definitionsdatei die ich in jeder Sprache nutzen kann.
Achja, die File-Dialoge sind unter Linux direkt noch schlechter als die von GTK+, man kann keine Selection über mehr als eine Dateiendung machen und das Auswählen von Ordnern ist dermaßen unintuitiv, dass ich vermute dass die Kunden das schlichtweg nicht auf die Reihe bekommen.
Und dann mache ich Qt Designer oder Glade auf und baue mir meine GUI visuell zusammen und bin fast fertig, zudem bekomme ich eine UI-Definitionsdatei die ich in jeder Sprache nutzen kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ohweh, das entwickelt sich wieder in Richtung einer leidigen "Welches ist das beste GUI-Toolkit"-Diskussion. Davon gab es für meinen Geschmack schon (mehr als) genug im Forum.
Letztlich hat es doch mit vielen Rahmenbedingungen zu tun, wie man Tkinter bewertet. Dass es optisch und hinsichtlich der Vielzahl und Komplexität mancher Widgets mit den anderen Toolkits (trotz der Verbesserungen seit Python 3.1) nicht mithalten kann, keine Frage.
Aber wenn es darum geht, einen ersten Einstieg in die GUI-Programmierung mit Python zu finden, wenn es nur kleine Applikationen sind, die im wesentlichen für den Eigengebrauch oder wenig darüber hinaus gedacht sind, dann ist Tkinter prima und gehört zudem noch zu den "batteries included". Auch für den schulischen Bereich ist Tkinter gut, weil man z.B. ganz ohne Bruch von (x)turtle/frog zu Tkinter kommt und die Schüler auch zu Hause damit arbeiten können, ohne vor dem Problem zu stehen, ein zusätzliches Toolkit installieren zu müssen (da ich ahne, dass zumindest der letzte Satz Widerspruch ernten wird: Für viele Schüler IST das ein Problem!)
Letztlich hat es doch mit vielen Rahmenbedingungen zu tun, wie man Tkinter bewertet. Dass es optisch und hinsichtlich der Vielzahl und Komplexität mancher Widgets mit den anderen Toolkits (trotz der Verbesserungen seit Python 3.1) nicht mithalten kann, keine Frage.
Aber wenn es darum geht, einen ersten Einstieg in die GUI-Programmierung mit Python zu finden, wenn es nur kleine Applikationen sind, die im wesentlichen für den Eigengebrauch oder wenig darüber hinaus gedacht sind, dann ist Tkinter prima und gehört zudem noch zu den "batteries included". Auch für den schulischen Bereich ist Tkinter gut, weil man z.B. ganz ohne Bruch von (x)turtle/frog zu Tkinter kommt und die Schüler auch zu Hause damit arbeiten können, ohne vor dem Problem zu stehen, ein zusätzliches Toolkit installieren zu müssen (da ich ahne, dass zumindest der letzte Satz Widerspruch ernten wird: Für viele Schüler IST das ein Problem!)
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Lustig, lustig, und dabei bin ich doch der der sich normalerweise eher für PyGTK aussprichtyipyip hat geschrieben:Aber Leonidas bringt mich bald soweit, PyQt ernstaft zu evaluieren...
So, Thema Flamewar vom Tisch! Now for something completely different...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice