標籤:

python用tkinter怎麼做出下面圖片的效果?

就是通過最上面的幾個按鈕切換界面


不請自來~~~

題主應該是要這樣的吧~

像這樣擁有Tab1和Tab2不同的界面。

用Frame(tabControl)定義不同的Tab來實現,如下~

import tkinter as tk # imports
from tkinter import ttk
win = tk.Tk() # Create instance
win.title("Python GUI") # Add a title
tabControl = ttk.Notebook(win) # Create Tab Control
tab1 = ttk.Frame(tabControl) # Create a tab
tabControl.add(tab1, text=Tab 1) # Add the tab
tabControl.pack(expand=1, fill="both") # Pack to make visible
tab2 = ttk.Frame(tabControl) # Add a second tab
tabControl.add(tab2, text=Tab 2) # Make second tab visible
win.mainloop() # Start GUI

想要在不同的Tab下添加組件,如下,在tab1下添加了一個LabelFrame~

monty = ttk.LabelFrame(tab1, text= Monty Python )
monty.grid(column=0, row=0, padx=8, pady=4)
ttk.Label(monty, text="Enter a name:").grid(column=0, row=0,
sticky=W)


你可以這樣做。

生成幾個frame,然後把控制項的master放到那幾個frame上,通過對frame的pack(),pack_forget()進行切換。

如下面的例子。

from tkinter import *

root=Tk()
root.geometry("500x280")

frame1=Frame(root,w=500,h=280)
frame2=Frame(root,w=500,h=280)
frame1.pack()

def to_frame1():
frame2.pack_forget()
frame1.pack()
def to_frame2():
frame1.pack_forget()
frame2.pack()

Button(frame1,text="button1").pack()
Button(frame1,text="button2").pack()

Button(frame2,text="button3").pack()
Button(frame2,text="button4").pack()

# 菜單
menubar=Menu(root)
function_select_menu=Menu(menubar,tearoff=0)
function_select_menu.add_command(label="功能1",command=to_frame1)
function_select_menu.add_command(label="功能2",command=to_frame2)
menubar.add_cascade(label="功能",menu=function_select_menu)
root.config(menu=menubar)

root.mainloop()

效果如圖


推薦閱讀:

草根學Python(四) Dict 和 Set
這或許是對小白最友好的python入門了吧——7,組織列表
如何用 Qt 開發現代桌面程序?
學習編程,如果只看"工程類"書籍,不看"科學類『書籍,會有哪些不良後果?
也說Python元類

TAG:Python | tkinter |