《Python GUI设计 tkinter菜鸟编程》配套代码 第14章 容器 PanedWindow 和 Notebook

ch14_1.py

# ch14_1.py
from tkinter import *

pw = PanedWindow(orient=VERTICAL)           # 创建PanedWindow对象
pw.pack(fill=BOTH,expand=True)

top = Label(pw,text="Top Pane")             # 创建标签Top Pane
pw.add(top)                                 # top标签插入PanedWindow

bottom = Label(pw,text="Bottom Pane")       # 创建标签Bottom Pane
pw.add(bottom)                              # bottom标签插入PanedWindow

pw.mainloop()

ch14_2.py

# ch14_2.py
from tkinter import *

root = Tk()
root.title("ch14_2")
# pw = PanedWindow(root,orient=HORIZONTAL)         # 创建PanedWindow对象
pw = PanedWindow(orient=HORIZONTAL)         # 创建PanedWindow对象

leftframe = LabelFrame(pw,text="Left Pane",width=120,height=150)
pw.add(leftframe)                           # 插入左边LabelFrame
middleframe = LabelFrame(pw,text="Middle Pane",width=120)
pw.add(middleframe)                         # 插入中间LabelFrame
rightframe = LabelFrame(pw,text="Right Pane",width=120)
pw.add(rightframe)                          # 插入右边LabelFrame

pw.pack(fill=BOTH,expand=True,padx=10,pady=10)

root.mainloop()

ch14_3.py

# ch14_3.py
from tkinter import *
from tkinter.ttk import *

root = Tk()
root.title("ch14_3")
# pw = PanedWindow(root,orient=HORIZONTAL)  # 创建PanedWindow对象
pw = PanedWindow(orient=HORIZONTAL)         # 创建PanedWindow对象

leftframe = LabelFrame(pw,text="Left Pane",width=120,height=150)
pw.add(leftframe,weight=1)                  # 插入左边LabelFrame
middleframe = LabelFrame(pw,text="Middle Pane",width=120)
pw.add(middleframe,weight=1)                # 插入中间LabelFrame
rightframe = LabelFrame(pw,text="Right Pane",width=120)
pw.add(rightframe,weight=1)                 # 插入右边LabelFrame

pw.pack(fill=BOTH,expand=True,padx=10,pady=10)

root.mainloop()

ch14_4.py

# ch14_4.py
from tkinter import *
from tkinter.ttk import *

root = Tk()
root.title("ch14_4")
# pw = PanedWindow(root,orient=HORIZONTAL)  # 创建PanedWindow对象
pw = PanedWindow(orient=HORIZONTAL)         # 创建PanedWindow对象

leftframe = LabelFrame(pw,text="Left Pane",width=120,height=150)
pw.add(leftframe,weight=2)                  # 插入左边LabelFrame
middleframe = LabelFrame(pw,text="Middle Pane",width=120)
pw.add(middleframe,weight=2)                # 插入中间LabelFrame
rightframe = LabelFrame(pw,text="Right Pane",width=120)
pw.add(rightframe,weight=1)                 # 插入右边LabelFrame

pw.pack(fill=BOTH,expand=True,padx=10,pady=10)

root.mainloop()

ch14_5.py

# ch14_5.py
from tkinter import *

pw = PanedWindow(orient=HORIZONTAL)  # 建立外层PanedWindow
pw.pack(fill=BOTH,expand=True)

entry = Entry(pw,bd=3)
pw.add(entry)

# 创建PanedWindow对象pwin,这是外层PanedWindow的子对象
pwin = PanedWindow(pw,orient=VERTICAL)
pw.add(pwin)
# 创建Scale,这是pwin对象的子对象
scale = Scale(pwin,orient=HORIZONTAL)
pwin.add(scale)

pw.mainloop()

ch14_6.py

# ch14_6.py
from tkinter import *
from tkinter.ttk import *

root = Tk()
root.title("ch14_6")
root.geometry("300x160")

notebook = Notebook(root)          # 创建Notebook

frame1 = Frame()                   # 创建Frame1
frame2 = Frame()                   # 创建Frame2

notebook.add(frame1,text="选项卡1") # 创建选项卡1同时插入Frame1
notebook.add(frame2,text="选项卡2") # 创建选项卡2同时插入Frame2
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)

root.mainloop()

ch14_7.py

# ch14_7.py
from tkinter import *
from tkinter import messagebox
from tkinter.ttk import *
def msg():
    messagebox.showinfo("Notebook","欢迎使用Notebook")

root = Tk()
root.title("ch14_7")
root.geometry("300x160")

notebook = Notebook(root)             # 创建Notebook

frame1 = Frame()        # 创建Frame1 # frame1 = Frame(root) # 没有发现有区别
frame2 = Frame()        # 创建Frame2 # frame2 = Frame(root) # 没有发现有区别

label = Label(frame1,text="Python")   # 在Frame1中创建标签控件
label.pack(padx=10,pady=10)
btn = Button(frame2,text="Help",command=msg)
btn.pack(padx=10,pady=10)

# notebook.add的调用顺序决定了布局的顺序
# notebook.add(frame2,text="页次2") # 创建选项卡2同时插入Frame2
notebook.add(frame1,text="页次1") # 创建选项卡1同时插入Frame1
notebook.add(frame2,text="页次2") # 创建选项卡2同时插入Frame2
notebook.pack(padx=10,pady=10,fill=BOTH,expand=TRUE)

root.mainloop()
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值