tix probleme

Fragen zu Tkinter.
Antworten
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Hallo,
Bin zufällig auf die Tix-Bibliothek gestoßen und versuchte seitdem seine Klassen auszuprobieren, nur ist die Tix-eigene Homepage überhaupt nicht hilfreich. Was ich da zu lesen bekomme, grenzt für mich schon nicht mehr an Python, und das, obwohl Tix doch für Python programmiert wurde...?

Code: Alles auswählen

tixScrolledHList .sh -options {
hlist.itemType text
hlist.drawBranch false
hlist.indent 8
}
pack .sh -expand yes -fill both
set hlist [.sh subwidget hlist]

$hlist add foo -text "foo"
$hlist add foo.bar -text "foo's 1st son"
$hlist add foo.bor -text "foo's 2nd son"
$hlist add foo.bar.bao -text "foo's 1st son's 1st son"
$hlist add foo.bar.kao -text "foo's 1st son's 2nd son"
$hlist add dor -text "dor, who has no son"
Was auch immer das sein soll, für jemanden mit reinen Pythonkenntnissen leider nicht entzifferbar. Desweiteren findet man keinerlei Informationen, wie die normalen Parameter auszusehen haben und welche es überhaupt gibt, besonders, welche Argumente die Tix Listbox-Methode 'insert' nimmt!?

Weiß jemand ein gutes Tutorial von Tix, mit dem man es auch wirklich lernen kann?
Und was hat es mit dem Unfug wie oben beschrieben auf sich?

Viele Grüße Markus
BlackJack

@Markus12: Tix ist, genau wie Tk, nicht für Python geschrieben, sondern hauptsächlich für Tcl, und das sieht eben so aus wie auf der Tix-Homepage. Für Python gibt's halt eine Anbindung an diese Toolkits.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Markus12 hat geschrieben:Weiß jemand ein gutes Tutorial von Tix, mit dem man es auch wirklich lernen kann?
Mir ist keins bekannt. Man kann allerdings auch ganz gut auf Tix verzichten ...
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Ja stimmt, davon habe ich später auch gelesen.

Hatte gestern nur gesehen, dass anscheinend die normale Listbox bei tkinter ab 3.0 verändert wurde, und jetzt bei jedem Klick in die Listbox diese einen Rahmen erhält, und der Eintrag unterstrichen wird. Und das sieht extrem bescheuert aus. Hätten sie es doch beim alten belassen.
Deswegen habe ich gesucht und dann Tix gefunden und es in dem Bereich weiter versucht. Dann lasse ich am Besten die Finger von Tix...

Aber vielleicht gibt es ja neue Optionen in Bezug auf Listboxen, mit denen man diese (für mich) unerwünschten Effekte abschalten kann?

Grüße Markus
BlackJack

Bei Python hat sich da nichts geändert. Das muss also dann schon eine Änderung bei Tk sein. Obwohl ich mir das nicht vorstellen kann.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Markus12 hat geschrieben:Hatte gestern nur gesehen, dass anscheinend die normale Listbox bei tkinter ab 3.0 verändert wurde, und jetzt bei jedem Klick in die Listbox diese einen Rahmen erhält, und der Eintrag unterstrichen wird.
Ich kann nicht verifizieren, dass sich da etwas geändert hätte.

Ansonsten lohnt sich beim Einsatz von tkinter der Umstieg auf Python 3.1, denn durch eine aktualisierte Tk-Version sieht das deutlich besser aus. Das gilt speziell für die Darstellung von Schriften. Im übrigen ist auch die Anzahl der Schriften, die für tkinter-Anwendungen nutzbar sind, dadurch erheblich gestiegen.
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Ich habe eben nachgeschaut und festgestellt, dass ich tcl 8.5 habe. Ebenso wie Python 3.1

Im Web konnte ich nicht finden, ob meine tkinter version die Neuste ist?
Grüße Markus
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Code: Alles auswählen

In [8]: import Tkinter as tk

In [9]: tk.TkVersion
Out[9]: 8.5

In [10]: tk.TclVersion
Out[10]: 8.5

Code: Alles auswählen

>>> import tkinter as tk
>>> tk.TkVersion
8.5
>>> tk.TclVersion
8.5
:wink:
yipyip
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Ja, genau die Version habe ich auch. Willst du damit sagen, das sei die Neuste? ;)
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Nee, wollte eigentlich nur zeigen, wie man die Versionsnummern herausfindet. (Dachte, das ist allgemein nicht so bekannt. :) )

Eine neuere Version als 8.5 ist mir fuer Tkinter nicht bekannt.
Bei Tcl/Tk scheint es schon 8.6 zu geben. Bei Tkinter wird man da wohl noch etwas warten muessen.

:wink:
yipyip
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Da ihr sagt, dass bei euch nicht die von mir genannten Erscheinungen auftreten, habe ich ein kleines Skript geschrieben und einen Screenshot erstellt.

Code: Alles auswählen

import tkinter as tk

root=tk.Tk()
root.state('zoomed')
l=tk.Listbox(root, font=('Arial',30))
l.pack(padx=30, pady=30, fill='both', expand=1)
for i in dir(tk):
    l.insert('end',i)
root.mainloop()
Bild: http://img441.imageshack.us/img441/2348 ... shotav.png

Man erkennt deutlich einen schwarzes Rand und, dass es unterstrichen ist.

Grüße Markus
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das sieht bei mir auch so aus. (Windows XP, Python 2.6.3)
Unter Python 2.4 mit den 8.4er Versionen ist das noch nicht der Fall.
MfG
HWK
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Kann man das ändern? Also zum Beispiel umschreiben, dass es nicht mehr unterstrichen wird und der Rahmen nicht umrandet wird?
yipyip
User
Beiträge: 418
Registriert: Samstag 12. Juli 2008, 01:18

Mit Shift+Tab kann man ja durch die selektierbaren Widgets schalten, hat ein Widget den Focus, besitzt es den schwarzen Rahmen. Das war (soweit ich mich erinnern kann) unter 8.4 genauso wie jetzt unter 8.5. Dass das Listbox-Item unterstrichen ist, habe ich unter Ubuntu mit Tk 8.5 allerdings nicht.

:wink:
yipyip
Markus12
User
Beiträge: 195
Registriert: Dienstag 6. März 2007, 19:32
Wohnort: Frankfurt am Main

Dass das normalerweise nur so war, wenn man extra die Listbox extra fokusierte, weiß ich. Aber das soll es eben nicht defaultmäßig machen.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Das mit der Unterstreichung scheint ein reines Windows-"Problem" zu sein. Unter Linux ist diese Unterstreichung nicht da.
Im übrigen versteht meine Tkinter-Version auch das state="zoomed" nicht ...
Antworten