當前位置:首頁 ? tkinter ? 正文

tkinter,在同一模塊下的多窗體操作,用Toplevel組件

    在tkinter中,在同一模塊下,如果不是通過frame或notebook來模擬多窗體切換,那就只有通過 Toplevel組件來操作了。

    通過Toplevel組件可以彈出一個窗體,這個窗體跟主窗體一樣,可以設置標題,大小,圖標,位置,顏色等,也可以在這個彈出窗體加入新的組件,也可以把這個彈出窗體做為父窗體,再彈出新的窗體。

    但是,但是,但是,(重要的事說3次),除了第一個所謂的主窗體外,其它彈出的所謂的子窗體,以及子子窗體,都是兄弟關系,平行關系。

    你可以關閉主窗體,讓所有窗體都跟隨關閉。其它窗體只能關閉自己。     丶丌皛

    我們可以通過主窗體切換到某個彈出窗體,也可以通過其中一個彈出窗體再彈出另外一個彈出窗體,也可以彈出自己的子窗體,除主窗體外,它們都是平行關系,兄弟關系。

    下面的代碼,我來演示一下Toplevel組件彈出窗體的幾種情況:

from tkinter import *

def one():
    top1=Toplevel(root)
    top1.title('彈出的第1個窗口')
    top1.geometry('300x100')
    but0=Button(top1,text="我也可以彈出第2個窗體",command=two)
    but0.pack()
    but3=Button(top1,text="我也可以彈出我下面的子窗體",command=wb98)
    but3.pack()
def two():
    top2=Toplevel(root)
    top2.title('第2個窗口,置頂所有窗體')
    top2.attributes('-topmost',1) # 窗口置頂其它窗體之上
    top2.geometry('300x100')
def three():
    top3=Toplevel(root)
    top3.title('第3個窗口,只置頂root窗體')
    top3.transient(root) # 窗口只置頂root之上
    top3.geometry('300x100')
def four():
    top4=Toplevel(root)
    top4.title('第4個窗口,模式窗體')
    top4.attributes("-toolwindow", 1) # 無最大化,最小化
    top4.transient(root) # 窗口只置頂root之上
    top4.resizable(False,False) # 不可調節窗體大小
    top4.grab_set() # 轉化模式
    top4.focus_force()  # 得到焦點
    top4.geometry('300x80')
    la1=Label(top4,text='注意:只要關閉本窗體,才可以操作其它窗體',bg='lightblue')
    la1.pack()

def wb98():
    top21=Toplevel(root)
    top21.title('第2個窗口的子窗體')
    top21.transient(root) # 窗口只置頂root之上
    top21.geometry('100x100')
    

root=Tk() # 源碼來自wb98.com
root.title('所謂的主窗口')
root.geometry('300x200')

but1=Button(root,text="彈出第1個窗體",command=one) # 彈出第1個普通窗體
but1.pack()
but2=Button(root,text="彈出第2個窗體",command=two) # 彈出第2個窗體,置頂所有窗體
but2.pack()
but2=Button(root,text="彈出第3個窗體",command=three) # 彈出第3個窗體,root主窗體
but2.pack()
but2=Button(root,text="彈出第4個窗體",command=four) # 彈出第4個窗體,模式窗體
but2.pack()

root.mainloop()

運行結果:

未命名.GIF

我們可以通過Toplevel組件做新的窗體,其實也通過Toplevel組件來模擬自定義的對話框,如上面代碼,彈出的第4個置頂,無最大化,最小化按鈕的窗體,就可以改成對話框,在我前面的文章也有相關的代碼,大家可以回看。

此文章來自:wb98.com  網站還有相關的系列課程文章,感興趣的可以前往。

來源:濟亨網

本文鏈接:http://www.chinaengraver.com/post/354.html

    << 上一篇 下一篇 >>

    湘公網安備 43011102000514號 - 湘ICP備08100508號

    2019年秋霞鲁丝片瓜皮_导航亚洲AV日韩AV永久无码_有没有哪些可以看片的免费的_国产色妞妞在线视频免费播放