das unten angehängte Programm kann ich unter IDLE starten (leider wird es dort auch nicht sauber beendet), aber aus der cmd in Windows startet es gar nicht, ich habe also auch keine Fehlermeldungen, die mir weiterhelfen könnten.
Für Hinweise wäre ich sehr dankbar.
Zum Code noch zwei Erläuterungen: der tkSimpleDialog ist aus "An Introduction to Tkinter" von Lundh. Ich habe einige Unicode-Strings gelöscht, um den Code übersichtlicher zu halten
Code: Alles auswählen
# -*- coding: utf-8 -*-
from Tkinter import *
import tkSimpleDialog
ButtonText1 = { 'de':u'...',
'el':u'...',
}
ButtonText2 = { 'de':u'...',
'el':u'...',
}
ButtonText3 = { 'de':u'...',
'el':u'...',
}
ButtonText4 = ...
class MainDialog:
def __init__(self, parent):
self.myParent = parent
self.myFrame = Frame(parent, width=100, height=100)
self.myFrame.pack()
self.country = ""
self.myFrame.bind_all("<Key-Return>", self.printCountry)
self.myFrame.bind_all("<Key>", self.setEntry)
s = Button(self.myFrame, text="Set Language", command=self.setLanguage)
s.pack()
def setButtons(self, language):
self.nr = 1
for i in buttonTexts:
self.b = Radiobutton(self.myFrame, text=i[language], variable=v, value=self.nr, indicatoron=0)
self.b.pack()
self.nr += 1
def printCountry(self, event):
print str(self.country) + " " + str(v.get())
self.country = ""
def setEntry(self, event):
self.country += event.char
def setLanguage(self):
sd = SelectionDialog(root)
class SelectionDialog(tkSimpleDialog.Dialog):
def body(self, master):
MODES = [
(u'...', 'de'),...
]
sv.set("de") # initialize
for text, mode in MODES:
b = Radiobutton(master, text=text, variable=sv, value=mode)
b.pack(anchor=W)
def apply(self):
self.language = sv.get()
root = Tk()
v = IntVar()
md = MainDialog(root)
root.withdraw()
sv = StringVar()
sd = SelectionDialog(root)
md.setButtons(sd.language)
root.deiconify()
root.mainloop()
root.destroy()