Ich versuche, eine ttk calendar
in meine Tkinter
GUI hinzuzufügen. Das Problem ist, dass es _tkinter.TclError: can't pack .34164128 inside .34161248.34161448.34161608
wirft_tkinter.TclError: kann nicht packen, wenn ich ttkcalendar in tkinter GUI hinzufügen möchte
import Tkinter
import tkSimpleDialog
import ttkcalendar
class CalendarDialog(tkSimpleDialog.Dialog):
"""Dialog box that displays a calendar and returns the selected date"""
def body(self, master):
self.calendar = ttkcalendar.Calendar(master)
self.calendar.pack()
def apply(self):
self.result = self.calendar.selection
# Demo code:
def main():
root = Tkinter.Tk()
root.wm_title("CalendarDialog Demo")
def onclick():
print 'click'
cd = CalendarDialog(root)
button = Tkinter.Button(root, text="Click me to see a calendar!", command=onclick)
button.pack()
root.update()
root.mainloop()
if __name__ == "__main__":
main()
TRACEBACK:
File "C:/Users/Milano/PycharmProjects/MC/plots/ds.py", line 32, in <module>
main()
File "C:/Users/Milano/PycharmProjects/MC/plots/ds.py", line 23, in main
cd = CalendarDialog(root)
File "C:\Python27\lib\lib-tk\tkSimpleDialog.py", line 64, in __init__
self.initial_focus = self.body(body)
File "C:/Users/Milano/PycharmProjects/MC/plots/ds.py", line 9, in body
self.calendar = ttkcalendar.Calendar(master)
File "C:\Users\Milano\PycharmProjects\MC\plots\ttkcalendar.py", line 52, in __init__
self.__place_widgets() # pack/grid used widgets
File "C:\Users\Milano\PycharmProjects\MC\plots\ttkcalendar.py", line 110, in __place_widgets
self._calendar.pack(in_=self, expand=1, fill='both', side='bottom')
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1940, in pack_configure
+ self._options(cnf, kw))
_tkinter.TclError: can't pack .34164128 inside .34161248.34161448.34161608
Wissen Sie, wo ist das Problem?
Würden Sie eine Sache tun? Füge diesen Code einfach an das Ende deiner Datei an: 'print (root); Drucken (Knopf); drucken (cd) '. Führen Sie die Datei erneut aus. Fügen Sie diese Daten zusammen mit dem Traceback hinzu, den Sie erneut erhalten. Ich bin sicher, das wird uns helfen. – TheRandomGuy
Ich kann diesen Code nicht an das Ende der Datei setzen. Davor wird der Fehler ausgelöst. Aber ich habe ttkcalendar Instanz und Knopf so geschaltet, dass ich mindestens root und button drucken kann und das Ergebnis ist:. (Punkt) und .33256272 –
So jetzt wissen Sie, dass der Fehler in der 'ttkcalendar'-Instanz ist. Ich denke, dass der Fehler darin besteht, dass Sie keine "__init__" -Methode haben. Versuchen Sie, "body" als "__init__" umzubenennen. (Doppelunterstriche.) – TheRandomGuy