Python3 tkinter系列

 

kinter 共有三种几何布局管理器,分别是:pack布局,grid布局,place布局。 pack布局:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
from tkinter import messagebox

__author__="陶陶"

class app:

    # 下载事件
    def dowloacd(*args):
        messagebox._show("提示","哈哈 你点对了")
    # 创建窗体
    root=Tk()
    # 窗体名称
    root.title("华泰汽车")
    # 窗体大小
    root.geometry("600x400+300+300")
    #创建lab标签
    Label(root,text="lab1",bg='red',font=("宋体",22)).pack(side=LEFT, anchor=W, fill=X, expand=YES)
    Label(root,text="lab2",bg="green",font=("宋体",20)).pack()
    Button(root,text="but1",bg="green",font=("宋体",24),command=dowloacd).pack()
    # 启动窗体
    root.mainloop()
属性名称
属性解析取值
fill设置组件是否水平或垂直方向填充 值:(X,Y,BOTH,NONE)
fill=X(水平方向填充)
fill=Y(垂直方向填充)
fill=BOTH(水平和垂直)
fill=NONE(不填充)         
expand设置组件是否展开,当值为YSE是,side选项无效,组件显示在容器的中间位置,
若fill为BOTH,填充容器的剩余空间。
expend=YES,expend=NO
side  设置组件的对齐方式值:(LEFT,TOP,RIGHT,BOTTOM)
上下左右
ipadx,ipady设置X方向(Y方向)内部间隙(与之并列的组件之间的间隔)默认值0,非负整数,单位为像素
padx,pady设置X方向(Y方向)外部间隙(与之并列的组件之间的间隔)默认值0,非负整数,单位为像素
anchor锚选项,当可用空间大于所需求空间时,决定控件放置于容器何处N,E,S,W,NW,NE,SW,SE,CENTER(默认值),八个方向以及中心
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()

pack类提供了下来函数:

pack_slaves(),以列表方式返回本组件的所以子组件对象。

pack_configure(option=value),给pack布局管理器设置属性,使用属性(option)= 取值(value)方式设置


grid布局:
属性名属性解析取值取值说明
row,columnrow为行,column为例,设置组件放置于第几行第几例取值为行,例的序号序号从0开始
sticky设置组件在网格中的对齐方式N、E、S、W、NW、NE、SW、SE、CENTER类似pack
rowspan, columnspan组件所跨越的行数,例数 跨越的行数,例数 行数,例数
ipadx ipadypack相同pack相同pack相同
padx padypack相同  pack相同pack相同
 

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

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

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

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

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

place:
属性名称属性解析取值取值说明
anchor同pack同pack同pack
x,y组件左上角的x,y坐标整数,默认为0绝对位置坐标,单位像素
relx,rely组件相对应父容器的x,y坐标0-1之间浮点数相对位置,0.0表示左边缘(或上边缘), 1.0表示右边缘(或下边缘)
width,height组件宽高非负数像素
relwidth relhright组件相对应父容器的宽和高0-1之间浮点数相对位置,0.0表示左边缘(或上边缘) ,1.0表示右边缘(或下边缘)
bordermode如果设置为INSIDE,组件内部的大小和位置是相对的, 不包括边框;如果是OUTSIDE,组件的外部大小是相对的,包括边框INSIDE、OUTSIDE(默认值INSIDE)可以使用常量INSIDE、OUTSIDE,也可以使用字符串形式”inside”、”outside”

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值