Python GUI 编程:tkinter 初学者入门指南——窗格窗口

360影视 2024-12-13 01:57 3

摘要:在本文中,将介绍如何使用 tkinter PanedWindow 窗格窗口小部件。PanedWindow 小部件是一个容器,可以在窗体上创建可以调节大小的区域,这些区域称作窗格。

在本文中,将介绍如何使用 tkinter PanedWindow 窗格窗口小部件。PanedWindow 小部件是一个容器,可以在窗体上创建可以调节大小的区域,这些区域称作窗格。

要创建小组件,请使用以下语法:

PanedWindow 常用方法:

示例:创建可调横向和纵向窗格

import tkinter as tk
root = tk.Tk
root.geometry('600x400+200+200')
root.title('PanedWindow 窗格窗口演示')

pw = tk.PanedWindow(root, orient=tk.HORIZONTAL, showhandle=True)
pw1 = tk.PanedWindow(root, orient=tk.HORIZONTAL, showhandle=True)
left_Label = tk.Label(pw1, text="标签 1", bg="blue")
pw1.add(left_Label, width=200)

pw2 = tk.PanedWindow(pw, orient=tk.VERTICAL, showhandle=True)
top_Label = tk.Label(pw2, text="标签 2", bg="green")
pw2.add(top_Label, height=200)
bottom_Label = tk.Label(pw2, text="标签 3", bg="red")
pw2.add(bottom_Label)

pw.add(pw1)
pw.add(pw2)
pw.pack(fill=tk.BOTH, expand=True)

root.mainloop

示例 :窗格窗口常用方法演示

import tkinter as tk
root = tk.Tk
root.geometry('600x400+200+200')
root.title('PanedWindow 窗格窗口演示')

defadd:
label = tk.Label(pw1, text="标签", bg="lightblue")
pw1.add(label, before=left_Label, width=80, minsize=50)
defremove:
pw1.forget(left_Label)
defget:
print(pw2.panecget(top_Label, 'height'))
defconf:
pw2.paneconfig(top_Label, height=80)

pw = tk.PanedWindow(root, orient=tk.HORIZONTAL, showhandle=True)

pw1 = tk.PanedWindow(root, orient=tk.HORIZONTAL, showhandle=True)
left_Label = tk.Label(pw1, text="标签 1", bg="blue")
pw1.add(left_Label, width=200)

pw2 = tk.PanedWindow(pw, orient=tk.VERTICAL, showhandle=True)
top_Label = tk.Label(pw2, text="标签 2", bg="green")
pw2.add(top_Label, height=200)
bottom_Label = tk.Label(pw2, text="标签 3", bg="red")
pw2.add(bottom_Label)

pw.add(pw1)
pw.add(pw2)
pw.pack(fill=tk.BOTH, expand=True)
frame = tk.Frame(root)
frame.pack
tk.Button(frame, text="增加", command=add).pack(side=tk.LEFT, padx=10)
"删除", command=remove).pack(side=tk.LEFT, padx=10)
"获取", command=get).pack(side=tk.LEFT, padx=10)
"设置", command=conf).pack(side=tk.LEFT, padx=10)
root.mainloop
add 方法:为左侧窗格再添加 Label 小部件forget 方法:删除左侧窗格的 left_Label 小部件

panecget 方法: 获取 top_Label 组件 height 选项的值,输出到控制台

paneconfig 方法:设置 top_Label 组件 height 选项的值为 80

示例:窗格窗口中Text增加滚动条

import tkinter as tk
root = tk.Tk
root.geometry('600x400+200+200')
root.title('PanedWindow 窗格窗口演示')

pw=tk.PanedWindow(root,orient=tk.VERTICAL,sashrelief='sunken') # 创建纵向窗格
pw.pack(fill=tk.BOTH,expand=True)
top_frame = tk.Frame(pw)
tk.Label(top_frame, text='顶部Frame').pack

pw1=tk.PanedWindow(pw,orient=tk.HORIZONTAL,sashrelief='sunken') # 创建横向窗格
label = tk.Label(pw1,text='左侧标签',width=15)
right_frame = tk.Frame(pw1)
text = tk.Text(right_frame,wrap="none") # 右侧多行文本框

scrollbar_h = tk.Scrollbar(right_frame,orient=tk.HORIZONTAL,command=text.xview) # 创建滚动条
scrollbar_v = tk.Scrollbar(right_frame,command=text.yview)
scrollbar_h.pack(side=tk.BOTTOM,fill=tk.X)
scrollbar_v.pack(side=tk.RIGHT,fill=tk.Y)

text.pack(side=tk.LEFT,fill=tk.BOTH,expand=True)
text.config(xscrollcommand=scrollbar_h.set,yscrollcommand=scrollbar_v.set)
pw1.add(label)
pw1.add(right_frame)
pw.add(top_frame,minsize=80)
pw.add(pw1)
root.mainloop

来源:优联教育

相关推荐