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

tkinter多界面切換,簡單的程序的切換方式2,用Notebook組件來模擬多窗口界面

  上一篇文章,我用 Frame組件來模擬多窗體切換,其實是在一個窗體里切換不同的Frame而已,其實,我們也可以用ttk組件Notebook組件來模擬多界面,多窗體切換,Notebook組件是ttk組件,需要導入ttk模塊,下面的代碼,我分別導入tkinter,ttk模塊,為了成功模擬多窗體,要去除Notebook組件的選項卡界面,就要用到ttk的style知識,這個知識,我在Notebook組件的講解文章講解過了,不清楚的可以回看我的文章。

  在代碼中:style1.layout('TNotebook.Tab', [])   # 隱藏選項卡  這句可以去除選項卡,模擬多窗體切換就更像一些。

  在代碼中,每個選項卡里,可以用不同的布局方式,不沖突,我在選項卡1用pack布局方法,選項2用grid布局方法,選項卡3用place布局方法。

  我把上一篇文章改成用Notebook組件來模擬多窗口切換,切換的方式還是通過菜單來切換,大家運行下面的代碼自行測試,本人在window10 測試成功?!  ∝钾~

import tkinter as tk
import tkinter.ttk as ttk

def popup_menu(event):
    popup.post(event.x_root,event.y_root)
def gotofr1(): # 到窗口1
    note1.select(0) # 選中第1個選項卡
    root.title('窗口1')
def gotofr2():
    note1.select(1) # 選中第2個選項卡
    root.title('窗口2')
def gotofr3():
    note1.select(2) # 選中第3個選項卡
    root.title('窗口3')
 
root=tk.Tk() # 源碼來自wb98.com
root.title('窗口1')
root.geometry('350x150+888+444')

popup=tk.Menu(root,tearoff=0)
popup.add_command(label='窗口1',command=gotofr1) # 通過窗體右鍵菜單來切換不同的'窗體'
popup.add_command(label='窗口2',command=gotofr2)
popup.add_command(label='窗口3',command=gotofr3)

root.bind("<Button-3>",popup_menu)
 
style1 = ttk.Style()
style1.layout('TNotebook.Tab', []) # 隱藏選項卡

note1=ttk.Notebook(root) # 1 創建Notebook組件
note1.pack(fill=tk.BOTH,expand=True)
 
fr1=tk.Frame(root,bg='lightblue') # 2 創建選項卡1的容器框架
fr2=tk.Frame(root,bg='lightgreen') # 2 創建選項卡2的容器框架
fr3=tk.Frame(root,bg='lightyellow') # 2 創建選項卡3的容器框架
 
note1.add(fr1,text='選項卡1') # 3 裝入框架1到選項卡1
note1.add(fr2,text='選項卡2') # 3 裝入框架2到選項卡2
note1.add(fr3,text='選項卡3') # 3 裝入框架2到選項卡2
 
but1=tk.Button(fr1,text='窗口1的按鈕')
but1.pack() # 4 把相關的組件裝入對應的框架里
but2=tk.Button(fr2,text='窗口2的按鈕')
but2.grid() # 4 把相關的組件裝入對應的框架里
but3=tk.Button(fr3,text='窗口3的按鈕')
but3.place(relx=0.5,rely=0.5,anchor=tk.CENTER) # 4 把相關的組件裝入對應的框架里

but1.bind("<ButtonRelease-1>",popup_menu) # 按鈕點擊釋放后彈出菜單
but2.bind("<ButtonRelease-1>",popup_menu)
but3.bind("<ButtonRelease-1>",popup_menu)

root.mainloop()

運行結果

未命名.GIF

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

來源:濟亨網

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

    << 上一篇 下一篇 >>

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

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