您的位置:首页技术文章
文章详情页

Python GUI编程学习笔记之tkinter界面布局显示详解

【字号: 日期:2022-07-31 17:11:18浏览:2作者:猪猪

本文实例讲述了Python GUI编程学习笔记之tkinter界面布局显示。分享给大家供大家参考,具体如下:

相关内容: pack 介绍 常用参数 使用情况 常用函数 grid 介绍 常用参数 使用情况 常用函数 place 介绍 常用参数 使用情况 常用函数

首发时间:2018-03-04 14:20

pack: 介绍: pack几何管理器按行或列打包小部件。 可以使用填充fill,展开expand和靠边side等选项来控制此几何体管理器。 pack的排放控件的形式就像将一个个控件按大小从上到下放过去Python GUI编程学习笔记之tkinter界面布局显示详解 在窗口不设定大小的而使用pack进行布局的情况下,窗口默认大小为刚好包裹所有控件的大小 默认情况下添加的控件是居中且占据整行的Python GUI编程学习笔记之tkinter界面布局显示详解 常用参数: fill:填充分配给控件的空间,fill:X为填充X轴方向,Y为Y轴方向,BOTH为X+YPython GUI编程学习笔记之tkinter界面布局显示详解 expand:先按普通标准来规定控件大小,如果后面窗口还剩下空间,那么会分给那些expand=True的控件,如图中是两个不同大小的按钮,其中2expand=TruePython GUI编程学习笔记之tkinter界面布局显示详解 ,当使用expand=True时,side将不会生效! side:使控件靠窗口的指定方向并排,side可取值LEFT,RIGHT,TOP,BOTTOM.Python GUI编程学习笔记之tkinter界面布局显示详解 anchor:对齐方式,可取值“n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默认为” center”)Python GUI编程学习笔记之tkinter界面布局显示详解 ipadx, ipady:内边距 padx,pady:外边距 适用情况:与gird相比,pack有一定的局限性,但在一些但很常见的情况下使用起来要容易得多: 将一个小部件放入一个框架(或任何其他容器小部件)中,并让它填充整个框架 将多个小部件放在一起 并排放置一些小部件 补充: 常用函数: pack_propagate(flag):由窗口调用来配置pack控件时窗口的大小,当flag=0时,那么窗口大小将不再仅仅包裹住所有控件,这时候窗口的高度和宽度设置才可以生效pack_forget():移除控件,但并没有进行摧毁,可以再次使用pack或其他方式来显示pack_info():返回pack提供的选项所对应得值。pack_slaves():以列表方式返回本组件的所有子组件对象。

from tkinter import *root=Tk()# for i in range(10): ##side # btn = Button(text=i) # btn.pack(side=LEFT) # btn.pack(side=RIGHT) # btn.pack(side=(TOP,LEFT)) ####fill # btn.pack(fill=X) # btn.pack(side=LEFT,fill=Y) # btn.pack(fill=BOTH)##expand# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# btn1.pack(fill=X)# btn2.pack(expand=True)#anchor:# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# btn1.pack(fill=X)# btn2.pack(anchor=E)#pack_propagete# btn1=Button(text=1,bg=’green’)# btn2=Button(text=2,bg=’yellow’)# root.pack_propagate(0)# btn1.pack()# btn2.pack()#pack_forget:# import time,threading# label=Label(text='警告!')# label.pack()# def run():# start_time=time.time()# while True:# if time.time()-start_time>3:# label.pack_forget()# break# t=threading.Thread(target=run)# t.setDaemon(True)# t.start()root.mainloop()grid: 介绍:grid是格子的意思,grid可以将控件区块式摆放.Python GUI编程学习笔记之tkinter界面布局显示详解 常用参数: row: 行号,区分不同控件是否处于同一行 column: 列号,区分不同控件是否处于同一列 sticky: 决定控件的贴靠方向,该选项从集合N,S,E,W [东南西北的意思],中取一个或多个值。比如要将标签与左边框对齐,可以使用W(西)Python GUI编程学习笔记之tkinter界面布局显示详解Python GUI编程学习笔记之tkinter界面布局显示详解 rowspan:行跨度,决定某个控件占的行数 ,默认一行 columnspan:列跨度,决定某个控件占的列数,默认一列 ipadx, ipady:内边距 padx,pady:外边距 适用情况: 设计对话框的时候特别方便Python GUI编程学习笔记之tkinter界面布局显示详解 区块化摆放的时候 补充: 常用函数: grid_forget :移除控件,但并没有进行摧毁,可以再次使用grid或其他方式来显示 [grid_remove有同样作用]

grid_propagete

:由窗口调用来配置pack控件时窗口的大小,当flag=0时,那么窗口大小将不再仅仅包裹住所有控件,这时候窗口的高度和宽度设置才可以生效

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

from tkinter import *root=Tk()root.title('我的窗口')label_user=Label(text=’用户名:’,bg=’green’)label_pwd=Label(text=’密码:’,bg=’green’)user=Entry()pwd=Entry()# row,column,stickylabel_user.grid(row=0,column=0,sticky=W) #一个有sticky,一个没有sticky,以作区分label_pwd.grid(row=1,column=0)# rowspan,columnspanuser.grid(row=0,column=1)pwd.grid(row=1,column=1)btn=Button(text='提交')btn.grid(row=0,column=3,rowspan=2,columnspan=2,padx=5, pady=5)# 下面主要是将第一列拉大来显示上面sticky的效果v=IntVar()check=Checkbutton(text='下次自动登录',variable=v,)check.grid(row=2,column=0,sticky=W)# _forget:import time,threadinglabel=Label(text='欢迎登录!',bg=’blue’)label.grid()def run(): start_time=time.time() while True: if time.time()-start_time>3: label.grid_forget() breakt=threading.Thread(target=run)t.setDaemon(True)t.start()root.mainloop()place: 介绍:可以使用绝对的位置或相对位置来摆放控件。 Python GUI编程学习笔记之tkinter界面布局显示详解 Python GUI编程学习笔记之tkinter界面布局显示详解 常用参数: x:控件在窗口中的x坐标 y:控件在窗口中的y坐标Python GUI编程学习笔记之tkinter界面布局显示详解 relx,rely:与主窗口的相对位置,比如Python GUI编程学习笔记之tkinter界面布局显示详解 relwidth,relheight:相对大小,比如height=0.5,width=0.5时控件占据窗口的四分之一大小 适用情况: 自定义显示方式 将按钮定位在对话框中 补充: 常用函数: place_forget():移除控件,但并没有进行摧毁,可以再次使用place或其他方式来显示place_slaves():以列表方式返回本组件的所有子组件对象。[slaves()具有同样功能]place_info():返回place提供的选项所对应得值。

from tkinter import *root=Tk()root.geometry(’100x100’)label=Label(text='用户名:',bg=’green’)entry=Entry()label.pack(fill=X)#x,y# entry.place(x=0,y=0)#relx,rely# entry.place(relx=0.3, rely=0.3)# entry.place(relx=0.5, rely=0.5)#relheight,relwidth# entry.place(relx=0.5, rely=0.5,relheight=0.5,relwidth=0.5)#_forget:import time,threadinglabel2=Label(text='警告!',bg=’blue’)label2.place(relx=0.2,rely=0.2)def run(): start_time=time.time() while True: if time.time()-start_time>3: label2.place_forget() breakt=threading.Thread(target=run)t.setDaemon(True)t.start()root.mainloop()

想要了解更多,可以参考tkinter的官方文档:http://effbot.org/tkinterbook/

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python Socket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

标签: Python 编程
相关文章: