Fehlermeldung tixComboBox

Fragen zu Tkinter.
Antworten
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo
ich habe hier folgenden Codesnippet

Code: Alles auswählen

import Tix as tx
root = tx.Tk()
frame = tx.Frame(root)
frame.grid()
combo = tx.ComboBox(frame,label="Hallo",editable=True,dropdown=True,
                    options="listbox.height 6")
combo.grid()
Mit Python 2.5.2 > python-tk 2.5.2-0ubuntu2 > tix 8.4.0-6ubuntu1
funktioniert das wunderbar.
Mit Python 2.6.2c1 > python-tk 2.6.1-0ubuntu2 > tix 8.4.0-6ubuntu1
bekomme ich folgende Fehlermeldung

Code: Alles auswählen

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/lib-tk/Tix.py", line 579, in __init__
    cnf, kw)
  File "/usr/lib/python2.6/lib-tk/Tix.py", line 307, in __init__
    self.tk.call(widgetName, self._w, *extra)
_tkinter.TclError: unknown color name "{#c3c3c3}"
Kann mir da jemand Erleuchtung schenken :?

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

Dein Skript funktioniert bei mir mit Python2.5 & Python2.6 unter Linux SuSE11.0 ohne eine Exception zu werfen. Irgendwie bekommt bei dir die Tix-Methode self.tk.call(widgetName, self._w, *extra) eine schwer verdaubare Farbe.

Gruss wuf :wink:
Take it easy Mates!
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

@wuf
vielen Dank das du das mal getestet hast.Ich frage mich nur
woher diese "schwer verdaubare" Farbe kommt und ob ich das ändern kann.

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

busfahrer hat geschrieben:@wuf
vielen Dank das du das mal getestet hast.Ich frage mich nur
woher diese "schwer verdaubare" Farbe kommt und ob ich das ändern kann.
Offenbar ist da irgendwo ein bug außerhalb deines Codes. Wenn man sich die Fehlermeldung genau ansieht, dann fällt auf, dass das keine gültige RGB-Angabe ist, weil außen herum noch geschweifte Klammern sind. Da ist irgendetwas schief gelaufen und ohne Eingriff in Tix selbst wirst du das wahrscheinlich nicht beheben können.

Man könnte nur auf gut Glück versuchen, eine explizite Farbe zu setzen (für was auch immer: fg, bg, ...) und zu hoffen, dass es damit klappt.
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

Kannst einmal im Headertext der Tix.py auf Zeile 3 die ID-Informationen kontrollieren

Bei mir ist die Tix.py für Python2.5 unter .....python2.5/lib-tk zu finden.
Die ID-Infos auf Zeile-3 sind:
# $Id: Tix.py 52785 2006-11-18 18:42:22Z martin.v.loewis $

Bei mir ist die Tix.py für Python2.6 unter .....python2.6/lib-tk zu finden.
Die ID-Infos auf Zeile-3 sind:
# $Id: Tix.py 63487 2008-05-20 07:13:37Z georg.brandl $

In den geichen Verzeichnissen kannst du auch noch die Versions-Nummer in Tkinter.py kontrollieren.
.....python2.5/lib-tk/Tkinter,py -> auf Zeile-33 = __version__ = "$Revision: 50704 $"
.....python2.6/lib-tk/Tkinter,py -> auf Zeile-33 = __version__ = "$Revision: 67083 $"

Gruss wuf :wink:
Take it easy Mates!
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
erst mal vielen Dank für deine Mühe :)
Unter Python 2.5 ist meine Tix.py und Tkinter.py identisch
mit deiner.
Unter Python 2.6 ist die Tix.py auch identisch mit deiner,
allerdings hat meine Tkinter.py die $Revision: 70220

Wirklich weiter bin ich jetzt allerdings immer noch nicht :(

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

Wirft das folgende die gleiche Exception?

Code: Alles auswählen

import Tix as tx
root = tx.Tk()

combo = tx.ComboBox(root,label="Hallo",editable=True,dropdown=True,
                    options="listbox.height 6")
combo.grid()

root.mainloop()
P.S. Was für ein Tix-Verzeichnis besteht bei dir unter dem Pfad /usr/lib/tcl/ (Mein Linux ist SuSE11.0)
Bei mir heisst das Tix-Verzeichnis Tix8.4.3

Gruss wuf :wink:
Take it easy Mates!
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf

die Exception bleibt unverändert bestehen.

Ein Pfad /usr/lib/tcl existiert bei mir nicht.In /usr/lib hab ich
ein Verzeichnis Tix8.4 welches wohl eine Verknüpfung zum
Verzeichnis /usr/share/tix8.4 ist.In /usr/share hätte ich dann noch anzubieten einen Ordner tcltk in dem wiederum die Ordner
tcl8.4 und tcl8.5 sowie tk8.4 und tk8.5 liegen.

Das alles unter Ubuntu 9.04 in einer VM,aber das sollte der
Sache ja keinen Abbruch tun....oder?

Auf meinem Produktiv-System Ubuntu 8.04 funktioniert alles
einwandfrei.

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

So wie ich dich verstehe passiert die Exception nur unter Ubuntu 9.04 in VM aber nicht auf deinem produktiv Ubuntu 8.04. Das heisst, wenn du dein Skript mit dem Befehl python2.6 dein_tix_skript.py aus der Konsole unter Ubuntu 8.04 startest wird keine Exception geworfen und die ComboBox korrekt auf dem Monitor angezeigt?

Da ich Linux noch nie in einer VM laufen liess kann ich dir nicht genau sagen ob dies eventuell das Problem sein könnte.

Gruss wuf :wink:
Take it easy Mates!
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
So wie ich dich verstehe passiert die Exception nur unter Ubuntu 9.04 in VM aber nicht auf deinem produktiv Ubuntu 8.04.
richtig

Unter Ubuntu 8.04 ist kein Python 2.6 sondern 2.5.2 installiert und damit funktioniert
das Skript fehlerfrei.

In der VM läuft Ubuntu 9.04 mit Python 2.6 und da wird die Exception geworfen.Habe auch mal versucht in der VM das Skript in der Konsole
mit dem Befehl

Code: Alles auswählen

python2.5 mein_tix_skript.py
zu starten,doch die
Exception ist die selbe.

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

Ist es dir möglich Python2.6 unter Ubuntu 8.04 zu installieren und dann mit Python2.6 dein_tix_skript.py aus der Konsole zu starten?

P.S. Wirft das folgende Skript unter Ubuntu 9.04 in VM eine Exception? Bitte mit Python2.5 & Python2.6 ausprobieren.

Code: Alles auswählen

import Tix as tx

root = tx.Tk()
root.wm_geometry("100x100")

frame = tx.Frame(root, bg='red')
frame.grid()
root.mainloop()

Gruss wuf :wink:
Take it easy Mates!
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
P.S. Wirft das folgende Skript unter Ubuntu 9.04 in VM eine Exception? Bitte mit Python2.5 & Python2.6 ausprobieren.
Es wird keine Exception geworfen.
Ist es dir möglich Python2.6 unter Ubuntu 8.04 zu installieren und dann mit Python2.6 dein_tix_skript.py aus der Konsole zu starten?
Werd mal sehen das ich das unfallfrei hin bekomme.Muß mal recherchieren
ob ich da noch Paketquellen freischalten muß oder ähnliches.Melde mich
diesbezüglich wieder.

Gruß...busfahrer
Alles wird gut ;-)
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
habe mir jetzt Python 2.6 unter Ubuntu 8.04 kompiliert und installiert.
In der Konsole ein

Code: Alles auswählen

python2.6 mein_tix_skript.py
funktioniert fehlerfrei.Es ist ja immer mehr zu befürchten das es entweder an der
VM oder an Ubuntu 9.04 liegt.

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

Super! Gratuliere!

Jetzt wissen wir das Tix in der VM unter Ubuntu 9.04 bei beiden Python-Versionen (2.5 & 2.6) nicht korrekt läuft. Ist es dir möglich auch Ubuntu 8.04 in der VM laufen zu lassen und die Tests mit deinem Skript durchzuführen?

Frage: Lässt du die VM unter Windows laufen?

Gruss wuf :wink:
Take it easy Mates!
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

busfahrer hat geschrieben:Es ist ja immer mehr zu befürchten das es entweder an der
VM oder an Ubuntu 9.04 liegt.
Gib Ubuntu eine Chance und warte noch die paar Tage auf das final release ... :)
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
Frage: Lässt du die VM unter Windows laufen?
Nein.Ich hab hier nur Ubuntu 8.04 und unter VirtualBox Ubuntu 9.04 bzw.
zu Testzwecken noch Ubuntulite,ein abgespecktes 8.04 mit LXDE.
Ist es dir möglich auch Ubuntu 8.04 in der VM laufen zu lassen und die Tests mit deinem Skript durchzuführen?
Das könnte ich natürlich mit meinem Ubuntulite in der VM testen.Muß mir dann nur erst mal Im Ubuntulite in der VM das Fräulein Python 2.6 kompilieren und installieren.Werde dann morgen Bericht erstatten :)

Gruß...busfahrer
Alles wird gut ;-)
busfahrer
User
Beiträge: 111
Registriert: Donnerstag 9. Oktober 2008, 17:42

Hallo wuf
hab jetzt in der VM in meinem Ubuntu-lite,welches auf Ubuntu 8.04
basiert,Python kompiliert und installiert.Das Skript läuft mit Python
2.5.2 und Python 2.6.2 fehlerfrei.Weiss der Teufel wo da bei
Ubuntu 9.04 der Hund begraben liegt.Vielleicht bringt das final release
von 9.04 noch besserung.

Gruß...busfahrer
Alles wird gut ;-)
Benutzeravatar
wuf
User
Beiträge: 1529
Registriert: Sonntag 8. Juni 2003, 09:50

Hallo busfahrer

OK. Laut numerix soll es ja nicht mehr so lange dauern bis das final release rauskommt. Dann können wir ja weiter schauen und eventuell mit der Exorciser-Arbeit weiterfahren.

Noch ein schöner Abend.

Gruss wuf :wink:
Take it easy Mates!
Antworten