Seite 1 von 1
askyesno() immer False
Verfasst: Sonntag 11. April 2004, 22:29
von jocsch
Hallo Forum!
Heute hab' ich mal ein ganz komisches Problem:
gibt in meinem Programm grundsätzlich 'False' zurück. Ich importiere am Anfang
Code: Alles auswählen
from Tkinter import *
import tkFileDialog
import tkSimpleDialog
import tkMessageBox
#Programmtext
Gibts da irgendwelche Nameskonflikte? Jemand ne Idee was (?)Ich falschmache?
Danke im voraus, jocsch
Verfasst: Sonntag 11. April 2004, 23:03
von Dookie
Hi jocsch,
bei mir get's
Code: Alles auswählen
Python 2.3.3 (#2, Feb 24 2004, 09:29:20)
Type "copyright", "credits" or "license" for more information.
IPython 0.4.0 -- An enhanced Interactive Python.
? -> Introduction to IPython's features.
@magic -> Information about IPython's 'magic' @ functions.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: import tkMessageBox
In [2]: print tkMessageBox.askyesno()
True
In [3]: print tkMessageBox.askyesno()
False
In [4]:
Beim ersten mal hab ich auf
Ja geklickt und beim zweiten mal auf
Nein
Gruß
Dookie
Verfasst: Dienstag 13. April 2004, 10:39
von jocsch
Hallo!
Das klappt bei mir auch, ich hab inzwischen den Übeltäter aufgespürt. Versuch mal folgendes:
Code: Alles auswählen
#!/usr/bin/python
import tkFileDialog
import tkMessageBox
class spam:
def __init__(self):
self.egg = None
def myTest(self):
someFileName = tkFileDialog.askopenfilename(title = 'What have I done ?')
print tkMessageBox.askyesno('Simple question', 'Am I False?')
if __name__ == '__main__':
a = spam()
a.myTest()
Drückt man nun auf 'Ja', wird 'False' zurückgegeben. Irgendwas scheint 'askopenfilename()' da kaputtzumachen, aber was ?
Dankbar für jeden hint, jocsch
Verfasst: Dienstag 13. April 2004, 16:49
von Milan
Hi. Kann ich nicht bestätigen, bei mir läuft es wunderbar
Python 2.3; Tcl 8.4; Win 2000
Milan
Verfasst: Donnerstag 15. April 2004, 15:58
von jocsch
Hi zurück!
Bei mir gehts immer noch nicht.
SuSE 9.0 Standardinstallation (Python 2.3, Tcl/Tk 8.4)
Sollte doch hoffentlich nicht am OS liegen???
Doch noch jemand ne Idee?
jocsch
Verfasst: Donnerstag 15. April 2004, 16:41
von Dookie
Hi jocsch,
hast Du eine Datei tkMessageBox.py im gleichen Verzeichnis wie Dein Script oder im Pythonpfad, oder heisst Dein Script vielleicht gar so?
Gruß
Dookie
Verfasst: Donnerstag 15. April 2004, 16:50
von Gast
Hi!
Nein, habe ich nicht - und auch mein script heisst anders.
Wenn ich oben die Zeile 'someFileName = ...' auskommentiere gehts ja wie gesagt auch, ergo muss das askopenfilename() irgendwas bewirken. Der Schlauch auf dem ich stehe wird immer länger ...
Gruss jocsch
Verfasst: Donnerstag 15. April 2004, 20:33
von wuf
Hi jocsch
Habe das gleiche Problem mit
deinem Skript, hier auch unter
SuSE 9.0. Wenn du aber
tkMessageBox.askokcancel
verwendest, scheint es zu klappen
OK ist fast gleich Yes und
Cancel ist fast gleich NO Hi!
Es scheint effektiv Unterschiede
zwischen SuSE und Win2000 zu geben.
Gruss wuf

Verfasst: Donnerstag 15. April 2004, 21:43
von Dookie
Ich habs jetzt mal unter Debian probiert, auch da kommt bei askyesno immer False als ergebnis, bei askokcancel gehts.
Wohl ein Bug in tcl/tk?
Gruß
Dookie
Verfasst: Samstag 17. April 2004, 21:11
von jocsch
Hallo!
Na da bin ich ja erst mal weitestgehend beruhigt, hab schon an mir gezweifelt ...
Danke an alle fürs testen + Grüsse, jocsch