天天看点

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

目录

pack常用属性

pack类提供了下列函数(使用组件实例对象调用):

 grid属性设置

grid类提供了下列函数(使用组件实例对象调用):

 place属性设置

place类提供了下列函数(使用组件实例对象调用)

所谓布局,就是指控制窗体容器中各个控件(组件)的位置关系。tkinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局。

pack布局

使用 pack布局,将向容器中添加组件,第一个添加的组件在最上方,然后是依次向下添加

from tkinter import *
 
root = Tk()
 
#创建三个 Label 分别添加到root窗体中 
#Label是一种用来显示文字或者图片的组件
Label(root,text = 'pack1',bg = 'red').pack() 
Label(root, text = 'pack2', bg = 'blue').pack() 
Label(root, text = 'pack3', bg = 'green').pack() 

           

如图:

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

pack常用属性

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

 注意:上表中取值都是常量,YES等价于"yes",亦可以直接传入字符串值。另外当界面复杂度增加时,要实现某种布局效果,需要分层来实现。

from tkinter import *    #注意模块导入方式,否则代码会有差别
 
class App:
    def __init__(self, master):
        #使用Frame增加一层容器
        fm1 = Frame(master)
        #Button是一种按钮组件,与Label类似,只是多出了响应点击的功能
        Button(fm1, text='Top').pack(side=TOP, anchor=W, fill=X, expand=YES)
        Button(fm1, text='Center').pack(side=TOP, anchor=W, fill=X, expand=YES)
        Button(fm1, text='Bottom').pack(side=TOP, anchor=W, fill=X, expand=YES)
        fm1.pack(side=LEFT, fill=BOTH, expand=YES)
 
        fm2 = Frame(master)
        Button(fm2, text='Left').pack(side=LEFT)
        Button(fm2, text='This is the Center button').pack(side=LEFT)
        Button(fm2, text='Right').pack(side=LEFT)        
        fm2.pack(side=LEFT, padx=10)
 
        
root = Tk()
root.title("Pack - Example")
display = App(root)
root.mainloop()
           

如上,创建一个Frame容器fm1,将三个垂直排列的Button组件使用pack布局放入fm1容器中,然后创建fm2容器,同样将三个水平排列的Button组件放入,最后将两个Frame容器当做组件,使用pack布局放入根窗体容器中。如此分层布局,实现了相对复杂一些的界面需求。

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

pack类提供了下列函数(使用组件实例对象调用):

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

grid布局

grid布局又被称作网格布局,是最被推荐使用的布局。程序大多数都是矩形的界面,我们可以很容易把它划分为一个几行几列的网格,然后根据行号和列号,将组件放置于网格之中。使用grid 布局时,需要在里面指定两个参数,分别用row 表示行,column 表示列。需要注意的是 row 和 column 的序号都从0 开始。

 grid属性设置

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

grid类提供了下列函数(使用组件实例对象调用):

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

 place布局。

最简单最灵活的一种布局,使用组件坐标来放置组件的位置。但是不太推荐使用,在不同分辨率下,界面往往有较大差异。

 place属性设置

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)

bordermode 如果设置为INSIDE,组件内部的大小和位置是相对的,不包括边框;如果是OUTSIDE,组件的外部大小是相对的,包括边框 INSIDE、OUTSIDE(默认值INSIDE)可以使用常量INSIDE、OUTSIDE,也可以使用字符串形式"inside"、"outside"

place类提供了下列函数(使用组件实例对象调用)

Python GUI之tkinter布局管理pack常用属性pack类提供了下列函数(使用组件实例对象调用): grid属性设置grid类提供了下列函数(使用组件实例对象调用): place属性设置place类提供了下列函数(使用组件实例对象调用)