我删除了我之前关于此问题的一个问题,以简化我的问题并将问题更清晰地传达出去。我有一个内部有多个类的项目,我想在一个新的窗口中显示一个日历,一旦我点击一个按钮。我目前正在使用this日历脚本,并在我的整个脚本中进行了一些小改动。我改变帧到Toplevel为在日历这样的脚本的第一部分:Tkinter,在Toplevel窗口上按钮单击显示日历
class Calendar(tk.Toplevel):
def __init__(self, parent, **kw):
Toplevel.__init__(self, parent, **kw)
现在,这确实与我的脚本的其余部分一起创建一个顶层窗口的日历,但只要程序是做它开始。我想让它在用户稍后调用时显示。
例如:
class Application(tk.Tk): # tk.Tk creates main window
def __init__(self):
tk.Tk.__init__(self)
self.title("T")
self.geometry('550x320')#x,y
self.create_options()
self.calendar = Calendar(self)
def create_options(self):
self.widgets = tk.Frame(self)
tk.Button(self,
text = "...", command=self.show_Calendar
).place(x=525, y=130)
这将称之为:
def show_Calendar(self):
'''shows calendar'''
toplevel = Toplevel()
toplevel.Calendar.place(x=0, y=0)
该按钮并创建一个窗口,但有什么也没有。什么是最好的方式让这个日历只显示在点击按钮时出现的窗口中?
没有理由在'Calendar'实例上调用'place',因为它是'Toplevel'。事实上,调用'place'会抛出一个错误,因为'Toplevel'的实例没有'place'函数。 –
我明白了。我已经删除了该行。 – Hobbes
@霍布斯非常感谢!过去几天我一直在网上搜索,试图找到一种方法。感谢帮助! – TheHoff