龙空技术网

Python GUI 编程 02 : 布局管理器

超人老嗲 72

前言:

而今各位老铁们对“java语言中常用的布局管理器有哪些”大概比较讲究,看官们都需要剖析一些“java语言中常用的布局管理器有哪些”的相关知识。那么小编在网摘上汇集了一些关于“java语言中常用的布局管理器有哪些””的相关文章,希望姐妹们能喜欢,兄弟们一起来学习一下吧!

Tkinter有三种布局方式:place、pack、grid,相较于前两个,gird更灵活一些,所以我比较喜欢用gird这种方式,当然,一些小项目用pack也许会更轻松一些,看项目需求及个人喜好吧,本文主要演示grid布局方式的一些使用方法。

import tkinter as tkfrom tkinter import ttkroot = tk.Tk()content = ttk.Frame(root, padding=(3,3,12,12),) # padding 方向顺序:左上右下f = ttk.Frame(content, borderwidth=5, relief='ridge', width=200, height=200)namelbl = ttk.Label(content, text='Name', anchor='nw')name = ttk.Entry(content)onevar = tk.BooleanVar(value=True)twovar = tk.BooleanVar()threevar = tk.BooleanVar(value=True)twovar.set(False)one = ttk.Checkbutton(content, text='One', variable=onevar,onvalue=True)two = ttk.Checkbutton(content, text='Two', variable=twovar,onvalue=True)three = ttk.Checkbutton(content, text='Three', variable=threevar,onvalue=True)btn_ok = ttk.Button(content, text='Okey', width=6)btn_cancel = ttk.Button(content, text='Cancel', width=6)content.grid(column=0, row=0, sticky='news') # sticky:部件的延展方向,可以用tk的类变量N、S、E、W表示也可以用特定字符串表示f.grid(column=0, row=0, columnspan=3, rowspan=2, sticky='news')# columnsapn\rowspan 跨列数、跨行数,定义部件占据布局的大小namelbl.grid(column=3, row=0, columnspan=2, sticky='nw', padx=5)name.grid(column=3, row=1, columnspan=2, sticky='new', pady=5, padx=5)one.grid(column=0, row=3)two.grid(column=1, row=3)three.grid(column=2, row=3)btn_ok.grid(column=3, row=3)btn_cancel.grid(column=4, row=3)# columnfonfigure\rowconfigure 按索引号定义部件在列\行方向延展时的权重root.columnconfigure(0, weight=1)root.rowconfigure(0, weight=1)content.columnconfigure(0, weight=3)content.columnconfigure(1, weight=3)content.columnconfigure(2, weight=3)content.columnconfigure(3, weight=1)content.columnconfigure(4, weight=1)content.rowconfigure(1, weight=1)for w in content.grid_slaves(row=3, column=4): print(w) # 取得指定位置部件for k, v in name.grid_info().items(): print(k, v) # 取得指定部件布局属性name.grid_configure(sticky='we')#// for child in content.winfo_children():#//      child.grid_configure(padx=1, pady=1, sticky='news')root.mainloop()

标签: #java语言中常用的布局管理器有哪些