Tk的三个几何管理器

Tk现在有三个几何管理器

  • Tk现在有三个几何管理器
    • 网格管理器 grid
      • 网格管理器命令
      • 其他高级命令
      • 拉伸行为
    • 打包器 pack
      • pack命令
    • 定位器 place
      • 命令
    • grid pack place 共同的命令
    • 一些有集合管理器作用的组件类

网格管理器 grid

将组件按行和列排列管理

网格管理器命令

-column n 
-columnspan
-in master

-ipadx distance   ## 组件边框和内容之间添加的内部补白
-ipady distance   
-padx distance   ## 组件周围添加的外部补白
-pady distance

-row 
-rowspan

-sticky style
## 从组件无法填满网格时,默认在会在中间,
该选项将从组件钉在任意一边;如果'ns'或者'ew',那么从组件会自动延伸占满那个方向的空白

其他高级命令

grid columnconfigure master index ? option value ? ...?
grid rowconfigure master index ? option value ? ...?
## master是主组件,index是网格索引,可以是数字、组件名、关键字'all'

## 支持的选线
-minsize amount ## 设置行/列的最小尺寸
-pad amount ## 向每个组件添加外部补白
-weight int ## 设置权重,交互式改变master尺寸时会用到
-uniform groupname ## 用于分组,和weight一起使用

拉伸行为

sticky延伸

在两个尺度上延伸

-sticky 'ns' ## 纵向延伸
-sticky 'we' ## 横向延伸

-weight和-uniform

权重和分组一样的配置,在拉伸时会优先被扩展,且同一分组被拉伸的程度一样

$mw->g_grid_columnconfigure(".b", -weight => 1, -uniform 'a',);

打包器 pack

按顺序将一系列组件放置在空白处,从边缘向中间布置

pack命令

pack ?configure? slave ?slave ...?  ?option value?  ## 为打包器控件添加一个或多个组件,或者改变已被打包器控制的组件的打包选项

## 使用widget的主组件作为当前组件的从组件,并打包到widget之后/前
-after widget  
-before widget 

## 单元格大于从组件尺寸时,用于锚定组件的位置,和grid的选项-sticky类似,
## 但是没有拉伸功能,所以不能使用'ns','ew'这两个position. 默认值是center
-anchor position 

-expand boolean ## 组件的块区(单元格)是否扩大,用于交互式拉伸窗口
-fill style  ## 'none' 'x' 'y' 'both', 组件是否扩大/拉伸

-in master

-ipadx distance
-ipady distance
-padx distance
-pady distance

-side side ## 'top' 'bottom' 'left' 'right'   指定主组件中从组件应该靠着的边 

定位器 place

采用简单的固定位置或相对位置处理组件

定位器是最简单的几何管理器,通常用在一些特定的应用程序中。
定位器应该只在网格管理器或打包器不能实现想要的布局时使用。

命令

place ?configure? salve option value ?option value ...?

## 选项

## 指定在父窗口的像素位置
-x point 
-y point

## 相对父窗口的位置  用浮点数表示 (0.0-1.0)
-relx rate  
-rely rate

## 相对父窗口的大小  用浮点数表示 (0.0-1.0)
-relheight rate
-relwidth rate

-in master ## 指定父窗口

grid pack place 共同的命令

gm = grid or pack or place slave表示组件

gm configure slave ? option value ? # 配置组件的参数
gm forget slave ? option value? # 停用组件
gm info slave  # 返回当前slave的配置
gm slaves master ? option value ? # 返回master列表上的从组件


lower widget ? Awidget ? widget堆栈顺序下调
raise widget ? Awidget ? widget堆栈顺序上调

一些有集合管理器作用的组件类

canvas、txt、panedwindow(ttk::panedwindow)、ttk::notebook

你可能感兴趣的:(perl)