对于任何⼀⻔图形界⾯编程来说,布局都是⾮常重要的⼀关,它的英⽂翻译叫做“layout”。不管是MFC、Java、还是Qt等图形界⾯编程, 都会有有布局的相关知识。 Python 的 Tkinter 也⼀样。
注意: pack 和 grid 不能同时⽤。⽽且通常对于较为复杂点的界⾯, 还是建议⼤家⽤gird;如果布局相对简单,使⽤pack 也很不错。
我们使⽤ pack 函数的时候,默认先使⽤的放到上⾯,然后依次向下排,它会给我们的组件⼀个⾃认为合适的位置和⼤⼩,这是默认⽅式,也是我们上⾯⼀直采⽤的⽅式。
选项 | 含义 |
---|---|
anchor | 1. 控制组件在 pack 分配的空间中的位置 ;2. "n", "ne", "e", "se", "s", "sw", "w", "nw", 或者 "center" 来定位(ewsn 代表东西南北,上北下南左西右东); 3. 默认值是 "center" |
expand | 1. 指定是否填充父组件的额外空间 2. 默认值是 False |
fill | 1. 指定填充 pack 分配的空间 ;2. 默认值是 NONE,表示保持子组件的原始尺寸 ;3. 还可以使用的值有:"x"(水平填充),"y"(垂直填充)和 "both"(水平和垂直填充) |
in_ | 1. 将该组件放到该选项指定的组件中 ;2. 指定的组件必须是该组件的父组件 |
ipadx | 指定水平方向上的内边距 |
ipady | 指定垂直方向上的内边距 |
padx | 指定水平方向上的外边距 |
pady | 指定垂直方向上的外边距 |
side | 1. 指定组件的放置位置;2. 默认值是 "top" ;3. 还可以设置的值有:"left","bottom","right" |
由于我们的程序⼤多数都是矩形,因此特别适合于⽹格布局,也就是 grid 布局。
选项 | 含义 |
---|---|
column | 1. 指定组件插入的列(0 表示第 1 列) ;2. 默认值是 0 |
columnspan | 指定用多少列(跨列)显示该组件 |
in_ | 1. 将该组件放到该选项指定的组件中 ;2. 指定的组件必须是该组件的父组件 |
ipadx | 指定水平方向上的内边距 |
ipady | 指定垂直方向上的内边距 |
padx | 指定水平方向上的外边距 |
pady | 指定垂直方向上的外边距 |
row | 指定组件插入的行(0 表示第 1 行) |
rowspan | 指定用多少行(跨行)显示该组件 |
sticky | 1. 控制组件在 grid 分配的空间中的位置; 2. 可以使用 "n", "e", "s", "w" 以及它们的组合来定位(ewsn代表东西南北,上北下南左西右东);3.使用加号(+)表示拉长填充,例如 "n" + "s" 表示将组件垂直拉长填充网格,"n" + "s" + "w" + "e" 表示填充整个网格;4.不指定该值则居中显示 |