tkinter的三种几何布局管理类
Posted dbslinux
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tkinter的三种几何布局管理类相关的知识,希望对你有一定的参考价值。
1.pack()
主要采用块的方式组织子组件
如下:
import tkinter
root=tkinter.Tk() #创建窗口对象
label=tkinter.Label(root,text=‘hello,python‘) #创建标签对象
label.pack() #将label组件添加到窗口中显示
button1=tkinter.Button(root,text=‘BUTTON1‘) #创建按钮对象
button1.pack(side=tkinter.LEFT) #将button1组件添加到窗口中显示,左停靠
button2=tkinter.Button(root,text=‘BUTTON2‘)
button2.pack(side=tkinter.RIGHT)
root.mainloop() #显示窗口
效果如下:
2.grid()
采用表格结构组件子组织,它的两重要参数:row和column
例子:计算器示例
from tkinter import *
root=Tk()
root.geometry(‘200x200+280+280‘) #设置窗口大小
root.title(‘计算器示例‘)
L1=Button(root,text=‘1‘,width=5,bg=‘yellow‘)
L2=Button(root,text=‘2‘,width=5)
L3=Button(root,text=‘3‘,width=5)
L4=Button(root,text=‘4‘,width=5)
L5=Button(root,text=‘5‘,width=5,bg=‘green‘)
L6=Button(root,text=‘6‘,width=5)
L7=Button(root,text=‘7‘,width=5)
L8=Button(root,text=‘8‘,width=5,bg=‘yellow‘)
L9=Button(root,text=‘9‘,width=5)
L0=Button(root,text=‘0‘)
Lp=Button(root,text=‘.‘)
L1.grid(row=0,column=0) #按钮放在0行0列
L2.grid(row=0,column=1)
L3.grid(row=0,column=2)
L4.grid(row=1,column=0)
L5.grid(row=1,column=1)
L6.grid(row=1,column=2)
L7.grid(row=2,column=0)
L8.grid(row=2,column=1)
L9.grid(row=2,column=2)
L0.grid(row=3,column=0,columnspan=2,sticky=E+W)
Lp.grid(row=3,column=2,sticky=E+W)
root.mainloop() #显示窗口
效果如下:
3.place()
允许指定组件的大小与位置,缺点是:改变窗口大小时组件不能随之灵活地改变大小.
例:
from tkinter import *
root=Tk()
root.title(‘登录‘)
root[‘width‘]=200;root[‘height‘]=80 #初始化窗口大小
Label(root,text=‘用户名‘,width=6).place(x=1,y=1) #绝对坐标1,1
Entry(root,width=20).place(x=45,y=1) #输入控件对象大小及坐标
Label(root,width=20).place(x=45,y=1)
Label(root,text=‘密码‘,width=6).place(x=1,y=20)
Entry(root,width=20,show=‘*‘).place(x=40,y=20)
Button(root,text=‘登录‘,width=8).place(x=40,y=40)
Button(root,text=‘取消‘,width=8).place(x=110,y=40)
root.mainloop()
效果如下:
以上是关于tkinter的三种几何布局管理类的主要内容,如果未能解决你的问题,请参考以下文章
python之tkinter使用-Grid(网格)布局管理器