python tkinter 布局方法

转自:http://xmsay.com/python-gui-tkinter-grid%E7%BD%91%E6%A0%BC%E5%87%A0%E4%BD%95%E5%B8%83%E5%B1%80%E7%AE%A1%E7%90%86%E5%99%A8%E4%BD%BF%E7%94%A8/

Tkinter参考中最推荐使用的一个布局器。实现机制是将Widget逻辑上分割成表格,在指定的位置放置想要的Widget就可以了。

使用grid显示窗体的主要流程:

self.thing = constructor(parent,……)#constructor可以为Button,Frame等

self.thing.grid(……)

 

grid方法介绍:

w.grid(option=value,……)

向窗体注册并显示控件

主要参数:

column: 控件放置位置的列数,从0开始算起,默认为0;

clomnspan: 设置单元格横向跨越的列数,例如:w.grid(row=0, column = 2, columnspan=3);

in_:重新设置w为窗体w2的子窗体,方法:in_=w2.w2必须是w的父窗体子类;

ipadx:设置控件里面x方向空白区域大小;

ipady:设置控件里面y方向空白区域大小;

padx:设置控件周围x方向空白区域保留大小;

pady:设置控件周围y方向空白区域保留大小;

row:控制放置的行数,从0开始算起,默认为上一个位占领的行数

rowspan:设置单元格纵向跨越的列数,例如:w.grid(row=0, column = 2,rowspan=4, columnspan=5);

sticky:设置对齐方式

 

如果未设置对齐方式,默认为将控件放置在窗体中间。对齐方式主要有如下几种:

1) 通过使用sticky=NE(右上角),SE(右下角),SW(左下角),NW(左上角)来设置控件位置

2) 通过使用sticky=N(上中),E(右中),S(底中),W(左中)来设置控件放置中间位置

3) sticky=N+S,向垂直方向拉升而保持水平中间对齐

4) sticky=E+W,向水平方向拉升而保持垂直中间对齐

5)   sticky=N+E+S+W,以水平方向和垂直方向拉升的方式填充单元格

这部分内容一直没弄懂,界面的布局要靠不停的尝试,略有点拙急。原因就在于pack(), grid(), place(),三个方法一个都没用好,widget中与尺寸有关的height和width选项的度量单位没弄明白。希望今天能一劳永逸的解决这个问题~~~
***************************************************************************************************
Widget尺寸
   要确定几何布局,首先需要弄清楚widget的尺寸,widget的尺寸信息由option中的height和width来确定。不同类型的widget,height和width的依据标准还不同(这就是为啥弄不清楚的原因),首先说明两种标准:

  1. Dimensions:如果设定为int,那么表示的是像素值,也可以使用单位c=Centimeters, i=Inches, m=Millimeters, p=Printer’s points(about 1/72”);
  2. Characters:许多与character相关的widget 是以Font size来度量自身尺寸的。Font可以使用tkFont.Font(size)来创建,size表示的是字符的高度,int表示point,-int表 示的像素值,例如-20表示20个像素大小,20则表示20-point,这里指的是单个character的大小,反应在widget中指的是以单个 character大小为单位;

下面将widget一句的标准列举出来:

WidgetHeightWidth
Buttontext行数Characters标准
CanvasDimensions标准Dimensions标准
CheckButtontext行数Characters标准
Entry单行Characters标准
FrameDimensions标准Dimensions标准
LabelFrameDimensisons标准Dimensions标准
Labeltext行数Characters标准
ListBoxtext行数Characters标准
Menu
MenuButtontext行数Characters标准
MessageDimensions标准
OptionMenuDimensions标准Dimensions标准
PanedWindow子widget子widget
Radiobuttontext行Characters标准
ScaleDimensions标准
ScrollbarDimensions标准
SpinboxCharacters标准
Texttext行Characters标准
   
   
   
   
PythonTkinter模块是一个用于创建图形用户界面(GUI)的工具包。它提供了一组用于创建窗口、标签、按钮、文本框等GUI组件的类和方法。 在Tkinter中,布局管理器是用于定义和控制GUI组件在窗口中的位置和大小的机制。Tkinter提供了三种主要的布局管理器:Pack、Grid和Place。 1. Pack布局管理器: Pack布局管理器将组件按照添加的顺序自动排列。它会自动根据窗口的大小调整组件的位置。例如,使用`pack()`方法将组件添加到窗口中: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.pack() button2 = Button(root, text="Button 2") button2.pack() root.mainloop() ``` 2. Grid布局管理器: Grid布局管理器将组件按照行和列的方式排列在一个网格中。可以使用`grid()`方法指定组件所在的行和列。例如: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.grid(row=0, column=0) button2 = Button(root, text="Button 2") button2.grid(row=0, column=1) root.mainloop() ``` 3. Place布局管理器: Place布局管理器允许你手动指定组件的位置和大小。可以使用`place()`方法来设置组件的坐标和大小。例如: ```python from tkinter import Tk, Button root = Tk() button1 = Button(root, text="Button 1") button1.place(x=50, y=50) button2 = Button(root, text="Button 2") button2.place(x=100, y=100) root.mainloop() ``` 这只是Tkinter布局的基本介绍,你可以根据自己的需求选择适合的布局管理器来创建GUI。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值