我刪除了我之前關於此問題的一個問題,以簡化我的問題並將問題更清晰地傳達出去。我有一個內部有多個類的項目,我想在一個新的窗口中顯示一個日曆,一旦我點擊一個按鈕。我目前正在使用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