新知榜官方账号
2023-12-01 16:31:42
Tkinter布局管理控件中常用的4个控件:Frame控件、LabelFrame控件、PanedWindow控件、Toplevel控件。下面我们来看看这些控件怎么使用,都有哪些不同的用途。
Toplevel控件是一个顶级窗口控件(也被称为“子窗体”控件)。使用Toplevel控件可以创建新的窗体,并在其中添加其他控件。下面是一个简单的例子:
import tkinter as tk
def create_new_window():
top = tk.Toplevel()
top.title('New Window')
tk.Label(top, text='This is a new window').pack()
root = tk.Tk()
btn = tk.Button(root, text='Create New Window', command=create_new_window)
btn.pack()
root.mainloop()
运行效果如下:
Toplevel控件有如下方法:
deiconify():在使用iconify()或withdraw()方法后重新显示该窗口frame():返回窗口识别码group(window):将窗口加入window窗口群组中iconify():将窗口图标化(最小化),使用deiconify()方法重新显示protocol(name,function):绑定回调函数,name参数可以是1) 'WM_DELETE_WINDOW':窗口被关闭的时候;2) 'WM_SAVE_YOURSELF':窗口被保存的时候;3) 'WM_TAKE_FOCUS':窗口获得焦点的时候。state():设置和获得当前窗口的状态,参数值:'normal'(正常状态)、'withdrawn'(移除窗口)、'icon'(最小化)、'zoomed'(放大)transient(master):指定为master的临时窗口withdraw():将窗口从屏幕上移动到了主窗口之外PanedWindow控件也叫窗格界面,提供了“手柄”功能(设置参数showhandle=True来启用),通过拖动“手柄”图标也可以改变每块区域的大小。下面是一个范例:
import tkinter as tk
def create_paned_window():
root = tk.Tk()
# 创建一个水平方向的PanedWindow控件
# 添加到主窗口中,默认为水平方向
pw = tk.PanedWindow(root, orient='horizontal')
pw.pack(fill=tk.BOTH, expand=1)
# 在窗口区的左侧添加两个水平方向的Label
left = tk.Label(pw, text='Left Pane', width=10)
pw.add(left)
right = tk.Label(pw, text='Right Pane', width=10)
pw.add(right)
root.mainloop()
运行效果如下:
该控件有如下方法:
add(child):添加一个新的子组件add(child, **option):参数值after、before、stickyforget(child):删除子组件panecget(child, option):获得子组件的值paneconfig(child, **options):设置子组件的各种选项panes():将父组件中包含的子组件以列表的形式返回sash_coord(index):返回一个二元组表示分割线的起点坐标sash_place(index, x, y):将指定的分割线移动到一个新的位置LabelFrame控件是Frame控件的变体,其主要作用也是对控件进行分组处理。下面是一个范例:
import tkinter as tk
def create_label_frame():
root = tk.Tk()
# 定义第一个容器,使用labelanchor='w'来设置标题的方位
lf = tk.LabelFrame(root, text='销售部', labelanchor='w')
lf.pack(fill='both', expand='yes')
tk.Label(lf, text='张三').grid(row=0, column=0)
tk.Label(lf, text='李四').grid(row=0, column=1)
tk.Label(lf, text='王五').grid(row=1, column=0)
tk.Label(lf, text='赵六').grid(row=1, column=1)
root.mainloop()
运行效果如下:
其属性如下:
bg:设置背景颜色bd:边框宽度colormap:颜色映射cursor:鼠标在Frame上滑过的样式height/width:设置Frame的高度和宽度highlightbackground:当Frame没有获得焦点的时候高亮边框的颜色highlightcolor:当Frame获得焦点的时候高亮边框的颜色highlightthickness:指定高亮边框的宽度,默认值是0padx/pady:距离主窗口在水平/垂直方向上的外边距relief:指定边框的样式,参数值:'sunken','raised','groove'或'ridge','flat'takefocus:组件是否接受输入焦点container:参数值为True,则窗体将被用作容器使用,一些其他程序也可以被嵌入Frame控件是最常用的控件,可以在主窗口内放置多个Frame控件,并且每个Frame中还可以嵌套一个或者多个Frame,从而将主窗口界面划分成多个区域。用法和属性与LabelFrame控件大同小异,这里就不再累述。
微信扫码咨询
相关工具
相关文章
相关快讯
推荐
阿里Accio中文版上线!一键搞定复杂采购
2025-08-19 09:13
视频“用嘴编辑”的时代来了,但钱包顶得住吗?
2025-08-15 17:59
智谱新模型GLM-4.5V全面开源,玩家们有福啦!
2025-08-12 17:56
扎心文案+AI插画=爆款!揭秘8万赞视频的制作全流程
2025-08-12 10:08
GPT-5没你想的那么好,附实测体验~
2025-08-11 11:07
一站式搞定AI绘图+视频,AI短片效率飙升的秘密在这儿!
2025-08-08 09:26
打工人新神器!10款国产AI,让你告别996!
2025-08-08 09:24
豆包视觉推理深度体验,AI也能“边看边想”了!
2025-08-08 09:19
300美元的AI男友来了!马斯克的情感生意从女友做到男友
2025-08-01 17:56
Agent智能体:2025年企业新员工,月薪仅需一度电?
2025-07-30 17:49