tkinter入门-布局方式pack(), grid(), place()

pack 转载于https://www.cnblogs.com/kongzhagen/p/6144588.html

1. 使用pack函数的时候,默认先使用放到上面的,然后依次从上向下排 

2. 可接受的默认参数

    side : 按钮停靠在窗口的哪个位置 

             left: 左 

             right: 右 

             top: 上 

              bottom: 下 

      fill: 填充 

            x: 水平方向填充 

            y: 竖直方向填充 

           bottom:水平和竖直方向填充 

           none: 不填充 

       expand:

             yes: 扩展整个空白区 

             no: 不扩展 

       anchor:

             N: 北 下 

             E: 东 右 

             S: 南下 

             W: 西 左     

        padx:x方向的外边距

  pady:y方向的外边距

  ipadx:x方向的内边距

  ipady:y方向的内边距

from tkinter import *
root = Tk()
Button(root,text='A').pack(side=LEFT,expand=YES,fill=Y)
Button(root,text='B').pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text='C').pack(side=RIGHT,expand=YES,fill=NONE)
Button(root,text='D').pack(side=LEFT,expand=NO,fill=Y)
Button(root,text='E').pack(side=TOP,expand=YES,fill=BOTH)
Button(root,text='F').pack(side=BOTTOM,expand=YES)
Button(root,text='G').pack(anchor=SE)
root.mainloop()

效果图 :

grid() 通常是进行栅格样式的摆放方式 

import tkinter


root = tkinter.Tk()

root.minsize(500, 500)


btn1 = tkinter.Button(root, text='按钮1')
btn1.grid(row=0, column=0)
btn2 = tkinter.Button(root, text='按钮2')
btn2.grid(row=0, column=1)
btn3 = tkinter.Button(root, text='按钮3')
btn3.grid(row=1, column=0)
btn3 = tkinter.Button(root, text='按钮4')
btn3.grid(row=1, column=1)
btn4 = tkinter.Button(root, text="按钮5")
btn4.grid(row=2, column=0, columnspan=2, ipadx=20)  # 占据两行

btnd = tkinter.Button(root, text='按钮0')
btnd.grid(row=0, column=2, rowspan=2, ipady=16)  # 占据两列

root.mainloop()

place() 主要采用的是绝对的摆放方式,主要是方式由两种 第一种x, y, width, height  和  relx, rely, relwidth, relheight 按照比例进行摆放 

import tkinter


# 创建主窗口对象
root = tkinter.Tk()

root.minsize(500, 500)
# root.geometry('500x300+500+200') # 设置固定窗口的大小

btn1 = tkinter.Button(root, text='按钮1')
btn1.place(relx=100 / 500, rely = 50 / 500, )

btn2 = tkinter.Button(root, text='按钮2')
btn2.place(relx=200/500, rely=50/500, relwidth=0.1, relheight=0.3)

root.mainloop()

原文地址:https://www.cnblogs.com/my-love-is-python/p/11971525.html