zoukankan      html  css  js  c++  java
  • Python-Tkinter几何布局管理

    所有的Tkinter组件都包含专用的几何管理方法,这些方法是用来组织和管理整个父配件区中子配件的布局的。Tkinter提供了截然不同的三种几何管理类:pack、grid和place。

     
    pack()

           pack几何管理采用块的方式组织配件,在快速生成界面设计中广泛采用,若干组件简单的布局,采用pack的代码量最少。pack几何管理程序根据组件创建生成的顺序将组件添加到父组件中去。通过设置相同的锚点(anchor)可以将一组配件紧挨一个地方放置,如果不指定任何选项,默认在父窗体中自顶向下添加组件。

     
           使用pack()布局的通用公式为:

                  WidgetObject.pack(option, …)

           pack方法提供了下列option选项,选项可以直接赋值或以字典变量加以修改:

    名称

    描述

    取值范围

    expand

    当值为“yes”时,side选项无效。组件显示在父配件中心位置;若fill选项为”both”,则填充父组件的剩余空间。

    “yes”, 自然数, “no”, 0

     (默认值为“no”或0)

    fill

    填充x(y)方向上的空间,当属性side=”top”或”bottom”时,填充x方向;当属性side=”left”或”right”时,填充”y”方向;当expand选项为”yes”时,填充父组件的剩余空间。

    “x”, “y”, “both”

    (默认值为待选)

    ipadx, ipady

    组件内部在x(y)方向上填充的空间大小,默认单位为像素,可选单位为c(厘米)、m(毫米)、

    i(英寸)、p(打印机的点,即1/27英寸),用法为在值后加以上一个后缀既可。

    非负浮点数

    (默认值为0.0)

    padx, pady

    组件外部在x(y)方向上填充的空间大小,默认单位为像素,可选单位为c(厘米)、m(毫米)、

    i(英寸)、p(打印机的点,即1/27英寸),用法为在值后加以上一个后缀既可。

    非负浮点数

    (默认值为0.0)

    side

    定义停靠在父组件的哪一边上。

    “top”, “bottom”, “left”, “right”

    (默认为”top”)

    before

    将本组件于所选组建对象之前pack,类似于先创建本组件再创建选定组件。

    已经pack后的组件对象

    after

    将本组件于所选组建对象之后pack,类似于先创建选定组件再本组件。

    已经pack后的组件对象

    in_

    将本组件作为所选组建对象的子组件,类似于指定本组件的master为选定组件。

    已经pack后的组件对象

    anchor

    对齐方式,左对齐”w”,右对齐”e”,顶对齐”n”,

    底对齐”s”

    “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”

    (默认为” center”)

    注:以上选项中可以看出expand、fill和side是相互影响的。

    典型例子:(默认引用为from Tkinter import *)

           单组件填充满父组件:

        text = Text(root, …)
    
    text.pack(expand=YES, fill=”both”)  # Tkinter模块提供了一系列大写值,其等价于字符型小写值,即Tkinter,YES  = =  “yes”。

          

    多组件布局(从左往右):

    默认布局是从上往下。

    btn = Button(root, …)
    
    btn.pack(side=LEFT, padx=<chmetcnv unitname="C" sourcevalue="4" hasspace="False" negative="False" numbertype="1" tcsc="0" w:st="on"></chmetcnv>4c)  # x轴左右拓展4厘米。
    
    Text(root, …).pack(side=LEFT)


     
           pack类提供了下列函数:

    函数名

    描述

    slaves()

    以列表方式返回本组件的所有子组件对象。

    propagate(boolean)

    设置为True表示父组件的几何大小由子组件决定(默认值),反之则无关。

    info()

    返回pack提供的选项所对应得值。

    forget()

    Unpack组件,将组件隐藏并且忽略原有设置,对象依旧存在,可以用pack(option, …),将其显示。

    location(x, y)

    x, y为以像素为单位的点,函数返回此点是否在单元格中,在哪个单元格中。返回单元格行列坐标,(-1, -1)表示不在其中。

    size()

    返回组件所包含的单元格,揭示组件大小。


    grid()

    grid几何管理采用类似表格的结构组织配件,使用起来非常灵活,用其设计对话框和带有滚动条的窗体效果最好。grid采 用行列确定位置,行列交汇处为一个单元格。每一列中,列宽由这一列中最宽的单元格确定。每一行中,行高由这一行中最高的单元格决定。组件并不是充满整个单 元格的,你可以指定单元格中剩余空间的使用。你可以空出这些空间,也可以在水平或竖直或两个方向上填满这些空间。你可以连接若干个单元格为一个更大空间, 这一操作被称作跨越。创建的单元格必须相临。


           使用grid()布局的通用公式为:

                  WidgetObject.grid(option, …)

     
           grid方法提供了下列option选项,选项可以直接赋值或以字典变量加以修改:

    名称

    描述

    取值范围

    column

    组件所置单元格的列号。

    自然数(起始默认值为0,而后累加)

    columnspan

    从组件所置单元格算起在列方向上的跨度。

    自然数(起始默认值为0)

    ipadx, ipady

    组件内部在x(y)方向上填充的空间大小,默认单位为像素,可选单位为c(厘米)、m(毫米)、

    i(英寸)、p(打印机的点,即1/27英寸),用法为在值后加以上一个后缀既可。

    非负浮点数

    (默认值为0.0)

    padx, pady

    组件外部在x(y)方向上填充的空间大小,默认单位为像素,可选单位为c(厘米)、m(毫米)、

    i(英寸)、p(打印机的点,即1/27英寸),用法为在值后加以上一个后缀既可。

    非负浮点数

    (默认值为0.0)

    row

    组件所置单元格的行号。

    自然数(起始默认值为0,而后累加)

    rowspan

    从组件所置单元格算起在行方向上的跨度。

    自然数(起始默认值为0)

    in_

    将本组件作为所选组建对象的子组件,类似于指定本组件的master为选定组件。

    已经pack后的组件对象

    sticky

    组件紧靠所在单元格的某一边角。

    “n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”

    (默认为” center”)

    典型例子:(默认引用为from Tkinter import *)

    单组件填充满父组件:

        text = Text(root, …)
    
    root.rowconfigure(0, weight=1)
    
    root.columnconfigure (0, weight=1) 


    可以看出,用grid填充不如pack方便。


    多组件布局(滚动条):

    效果肯定是3种布局方式中最好的。

        text = Text(root, …)
    
    text.grid()


    # 纵向

        sb = Scrollbar(root, …)
    
    sb.grid(row=0, column=1, sticky='ns')
    
    text.configure(yscrollcommand=sb.set)
    
    sb.configure(command=text.yview)

    # 横向

        sb = Scrollbar(root, orient='horizontal', …)
    
    sb.grid(row=1, column=0, sticky='ew')
    
    text.configure(xscrollcommand=sb.set)
    
    sb.configure(command=text.xview)

     
           grid类提供了下列函数:

    函数名

    描述

    slaves()

    以列表方式返回本组件的所有子组件对象。

    propagate(boolean)

    设置为True表示父组件的几何大小由子组件决定(默认值),反之则无关。

    info()

    返回pack提供的选项所对应得值。

    forget()

    Unpack组件,将组件隐藏并且忽略原有设置,对象依旧存在,可以用pack(option, …),将其显示。

    grid_remove ()

     
  • 相关阅读:
    LeetCode Best Time to Buy and Sell Stock
    LeetCode Scramble String
    LeetCode Search in Rotated Sorted Array II
    LeetCode Gas Station
    LeetCode Insertion Sort List
    LeetCode Maximal Rectangle
    Oracle procedure
    浏览器下载代码
    Shell check IP
    KVM- 存储池配置
  • 原文地址:https://www.cnblogs.com/APeng2019/p/10719312.html
Copyright © 2011-2022 走看看