当前位置:首页 » 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  wb86.com 网站还有相关的tkinter教程系列课程文章,感兴趣的可以前往。

来源:济亨网

本文链接:http://wb98.com/post/350.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号