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一句的标准列举出来:

Widget Height Width
Button text行数 Characters标准
Canvas Dimensions标准 Dimensions标准
CheckButton text行数 Characters标准
Entry 单行 Characters标准
Frame Dimensions标准 Dimensions标准
LabelFrame Dimensisons标准 Dimensions标准
Label text行数 Characters标准
ListBox text行数 Characters标准
Menu
MenuButton text行数 Characters标准
Message Dimensions标准
OptionMenu Dimensions标准 Dimensions标准
PanedWindow 子widget 子widget
Radiobutton text行 Characters标准
Scale Dimensions标准
Scrollbar Dimensions标准
Spinbox Characters标准
Text text行 Characters标准
     
     
     
     

你可能感兴趣的:(python学习笔记)