2017-05-15 62 views
-1

我對Python很陌生,昨天開始學習Tkinter。我正在創建一個銀行系統,並且我有一個由按鈕組成的菜單。我有的問題是,我不知道如何打開一個額外的窗口,當點擊按鈕。我嘗試過top=Toplevel(),但它只打開兩個窗口。我需要的是額外的窗口只有在用按鈕(事件)激活時才能打開。有人可以幫助我,因爲我有約六個按鈕,所以我很困難?Tkinter和Python

到目前爲止我的代碼是:

root.minsize(width=400, height=400) 
root.maxsize(width=400, height=400) 
root.configure(background='#666666') 
label = Frame(root).pack() 
Lb = Label(label, text='Welcome to Main Menu',bg='#e6e6e6', width=400).pack() 

menu = Frame(root,).pack() 
btn_1 = Button(menu, text='Make Deposit', width=15, height=2).pack(pady=5) 
btn_2 = Button(menu, text='Withdrawal', width=15, height=2).pack(pady=5) 
btn_3 = Button(menu, text='Accounts', width=15, height=2).pack(pady=5) 
btn_4 = Button(menu, text='Balance', width=15 ,height=2).pack(pady=5) 
btn_5 = Button(menu, text='Exit', width=15, height=2).pack(pady=5) 
root.mainloop() 

感謝您的幫助提前

+0

您需要將打開Toplevel的函數傳遞給按鈕的'command'選項。 –

回答

0

也許這可以工作:

from Tkinter import * 

class firstwindow: 
    def __init__(self): 
     #Variables 
     self.root= Tk() 
     self.switchbool=False 
     #Widgets 
     self.b = Button(self.root,text="goto second window",command= self.switch) 
     self.b.grid() 
     self.b2 = Button(self.root,text="close",command= self.root.quit) 
     self.b2.grid() 
     self.root.mainloop() 

    #Function to chage window 
    def switch(self): 
     self.switchbool=True 
     self.root.quit() 
     self.root.destroy() 

class secondwindow: 
    def __init__(self): 
     self.root= Tk() 
     self.b2 = Button(self.root,text="close",command= self.root.quit) 
     self.b2.grid() 
     self.root.mainloop() 

one = firstwindow() 

if one.switchbool: 
    two = secondwindow() 

看看到Tkinter reference。檢查所有通用方法和小部件方法。你可以做任何你想做的事。

0

下面是如何通過單擊按鈕打開窗口的一個小例子。當用戶點擊按鈕時,調用傳遞給按鈕的command選項的功能open_window

import tkinter as tk 

def open_window(): 
    top = tk.Toplevel(root) 
    tk.Button(top, text='Quit', command=top.destroy).pack(side='bottom') 
    top.geometry('200x200') 

root = tk.Tk() 

tk.Button(root, text='Open', command=open_window).pack() 
tk.Button(root, text='Quit', command=root.destroy).pack() 

root.mainloop()