Seite 1 von 1

Fehlermeldung tixComboBox

Verfasst: Samstag 18. April 2009, 20:15
von busfahrer
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

Verfasst: Sonntag 19. April 2009, 15:16
von wuf
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:

Verfasst: Sonntag 19. April 2009, 18:59
von busfahrer
@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

Verfasst: Sonntag 19. April 2009, 19:35
von numerix
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.

Verfasst: Sonntag 19. April 2009, 19:36
von wuf
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:

Verfasst: Sonntag 19. April 2009, 21:19
von busfahrer
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

Verfasst: Sonntag 19. April 2009, 22:20
von wuf
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:

Verfasst: Montag 20. April 2009, 09:19
von busfahrer
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

Verfasst: Montag 20. April 2009, 12:47
von wuf
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:

Verfasst: Montag 20. April 2009, 13:58
von busfahrer
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

Verfasst: Montag 20. April 2009, 15:00
von wuf
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:

Verfasst: Montag 20. April 2009, 18:03
von busfahrer
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

Verfasst: Montag 20. April 2009, 20:43
von busfahrer
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

Verfasst: Montag 20. April 2009, 21:01
von wuf
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:

Verfasst: Montag 20. April 2009, 21:09
von numerix
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 ... :)

Verfasst: Montag 20. April 2009, 21:19
von busfahrer
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

Verfasst: Dienstag 21. April 2009, 21:23
von busfahrer
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

Verfasst: Dienstag 21. April 2009, 21:49
von wuf
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: