_tkinter操作错误:尝试将ttkcalendar添加到tkinter GUI时无法打包

2024-09-29 18:47:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将ttk calendar添加到我的TkinterGUI中。问题是它引发了_tkinter.TclError: can't pack .34164128 inside .34161248.34161448.34161608

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

你知道问题出在哪里吗?在


Tags: inpyselfmainlinerootmcusers
1条回答
网友
1楼 · 发布于 2024-09-29 18:47:46

错误是您在类CalendarDialog中没有__init__方法。所以只需将body方法重命名为__init__。现在,每次创建一个实例并定义一个pack()方法时,您已经初始化了该实例。在

相关问题 更多 >

    热门问题