Python如何使用Tkinter网格布局管理器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
很多时候Tkinter界面编程都会优先考虑使用包布的局,但实际上Tkinter后来引入的网格布局不仅简单易用,而且管理组件也非常方便。
电网把组件空间分解成一个网格进行维护,即按照行,列的方式排列组件,组件位置由其所在的行号和列号决定,行号相同而列号不同的几个组件会被依次上下排列,列号相同而行号不同的几个组件会被依次左右排列。
使用网格布局的过程就是为各个组件指定行号和列号的过程,不需要为每个网格都指定大小,网格布局会自动为它们设置合适的大小。
程序调用组件的网格()方法就进行网格布的局,在调用网格()方法时可传入多个选项,该方法支持的ipadx, ipady, padx, pady与包()方法的这些选项相同。而网格()方法额外增加了如下选项:
专栏:指定将组件放入哪列。第一列的索引为0。
columnspan:指定组件横跨多少列。
行:指定组件放入哪行。第一行的索引为0
行宽:指定组件横跨多少行。
粘:有点类似于包()方法的锚选项,同样支持N(北,代表上),E(东,代表右),S(南,代表下),W(西,代表左)、西北(西北,代表左上),NE(东北,代表右上)、西南(西南,代表左下),SE(东南,代表右下),中心(中,默认值)这些值。
下面程序使用网格布局来实现一个计算器界面:
#,Python 2. x使用这行 #得到Tkinter import * #,Python 3. x使用这行 得到tkinter import * class 应用程序: ,,,def __init__(自我,,主): ,,,,,,,self.master =,主人 ,,,,,,,self.initWidgets () ,,,def initWidgets(自我): ,,,,,,,#,创建一个输入组件 ,,,,,,,e =,条目(救援=沉,字体=(& # 39;Courier 新# 39;,,24),,宽度=25) ,,,,,,,#,对该输入组件使用包布的局,放在容器顶部 ,,,,,,,e.pack(一边=,,pady=10) ,,,,,,,p =,框架(self.master) ,,,,,,,p.pack(一边=最高) ,,,,,,,#,定义字符串的元组 ,,,,,,,names =, (“0“,,,, 1,,,,, 2,,,,“3”; ,,,,,,,,,,,,,“4“,,,”5“,,,“6“,,,“7“,,,“8”,,,“9”; ,,,,,,,,,,,,,“+”,,,“产生绯闻;,,,“*“,,,”/?,,“管理者”,,,“=? ,,,,,,,#,遍历字符串元组 ,,,,,,,for 小姐:拷贝范围(len(名称): ,,,,,,,,,,,#,创建按钮,将按钮放入p组件中 ,,,,,,,,,,,b =,按钮(p,文本=[我],名字,字体=(& # 39;verdana # 39;,, 20),,宽度=6) ,,,,,,,,,,,b.grid(行=小姐://,,,列=小姐:%,4) root =, Tk () root.title(“网格布局“) 应用程序(根) root.mainloop ()
上面程序实际上使用了两个布局管理器进行嵌套,先使用包布局管理两个组件,分贝是条目(输入组件)和框架(容器),这两个组件就会按照从上到下的方式排列。
接下来程序使用网格布局管理框架容器中的16个按钮,分别将16个按钮放入不同的行,不同的列。运行上面程序,可以看到如下图所示的界面。
看完上述内容,你们掌握Python如何使用Tkinter网格布局管理器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!