Seite 1 von 1

tix probleme

Verfasst: Freitag 30. Oktober 2009, 18:32
von Markus12
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

Verfasst: Freitag 30. Oktober 2009, 18:54
von 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.

Re: tix probleme

Verfasst: Freitag 30. Oktober 2009, 19:32
von numerix
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 ...

Verfasst: Freitag 30. Oktober 2009, 22:28
von Markus12
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

Verfasst: Samstag 31. Oktober 2009, 00:11
von 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.

Verfasst: Samstag 31. Oktober 2009, 07:23
von numerix
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.

Verfasst: Samstag 31. Oktober 2009, 12:56
von Markus12
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

Verfasst: Samstag 31. Oktober 2009, 13:04
von yipyip

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

Verfasst: Samstag 31. Oktober 2009, 14:09
von Markus12
Ja, genau die Version habe ich auch. Willst du damit sagen, das sei die Neuste? ;)

Verfasst: Samstag 31. Oktober 2009, 14:27
von yipyip
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

Verfasst: Samstag 31. Oktober 2009, 15:02
von Markus12
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

Verfasst: Samstag 31. Oktober 2009, 15:44
von HWK
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

Verfasst: Samstag 31. Oktober 2009, 16:10
von Markus12
Kann man das ändern? Also zum Beispiel umschreiben, dass es nicht mehr unterstrichen wird und der Rahmen nicht umrandet wird?

Verfasst: Samstag 31. Oktober 2009, 16:16
von yipyip
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

Verfasst: Samstag 31. Oktober 2009, 16:19
von Markus12
Dass das normalerweise nur so war, wenn man extra die Listbox extra fokusierte, weiß ich. Aber das soll es eben nicht defaultmäßig machen.

Verfasst: Samstag 31. Oktober 2009, 17:24
von numerix
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 ...