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:

Code: Alles auswählen

tkMessageBox.askyesno()
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 :wink:

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