Seite 1 von 1

Python 3 und Tix

Verfasst: Dienstag 13. Januar 2009, 15:01
von baracuda
Hi!

Mal eine relativ unkomplizierte Frage... ich werde aus der Tix-Dokumentation einfach nicht schlau!
Ich wollte mir die erweiterten Tkinter Widgets mal ansehen, und einen einfachen Fortschrittsbalken programmieren (wenn man von "programmieren" überhaupt reden darf):

Code: Alles auswählen

from tkinter import tix
root = tix.Tk()
bar = tix.Meter(root, value=0.0)
Damit hörts dann schon auf. Ich konnte zum Beispiel aus der Doku auch keine Liste der benötigten Parameter ausmachen.
Folgender Error-Code:

Code: Alles auswählen

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    bar = tix.Meter(root)
  File "C:\Python30\lib\tkinter\tix.py", line 1130, in __init__
    ['options'], cnf, kw)
  File "C:\Python30\lib\tkinter\tix.py", line 296, in __init__
    for k,v in cnf.items()[:]:
TypeError: 'dict_items' object is unsubscriptable
Danke im Voraus

Verfasst: Dienstag 13. Januar 2009, 15:24
von numerix
Da hast du einen Bug in tix aufgespürt:
In Python 2.x hat dict.items() eine Liste zurückgeliefert, in Python 3.0 ist es aber eine "view" und da lässt sich die "slice-notation" nicht anwenden.

Also: Entweder Python 2.x verwenden oder den Fortschrittsbalken selbst implementieren (ist soooo schwierig auch nicht) oder tix an der Stelle reparieren ...

Verfasst: Dienstag 13. Januar 2009, 15:26
von baracuda
Danke...

hoffentlich wirds bald gefixt.
Ich habe sowieso das Gefühl, dass Python 3 noch nicht bei allen so angekommen ist. Ich habe mir überlegt, auch mal PyGTK zu verwenden.
Aber das funktioniert bis jetzt auch nur mit 2.x .

lg

Verfasst: Dienstag 13. Januar 2009, 16:10
von BlackJack
Das Gefühl dürfte begründet sein. Ich bin immer noch bei Python 2.5 und das wird sich so schnell auch nicht ändern. Bis zum Jahresende vielleicht 2.6 -- mal sehen.