十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章主要介绍Python GUI中tkinter界面布局显示的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、虚拟主机、营销软件、网站建设、玄武网站维护、网站推广。具体如下:
pack
介绍
常用参数
使用情况
常用函数
grid
介绍
常用参数
使用情况
常用函数
place
介绍
常用参数
使用情况
常用函数
首发时间:2018-03-04 14:20
介绍:
pack几何管理器按行或列打包小部件。 可以使用填充fill,展开expand和靠边side等选项来控制此几何体管理器。
pack的排放控件的形式就像将一个个控件按大小从上到下放过去
在窗口不设定大小的而使用pack进行布局的情况下,窗口默认大小为刚好包裹所有控件的大小
默认情况下添加的控件是居中且占据整行的
常用参数:
fill:填充分配给控件的空间,fill:X为填充X轴方向,Y为Y轴方向,BOTH为X+Y
expand:先按普通标准来规定控件大小,如果后面窗口还剩下空间,那么会分给那些expand=True的控件,如图中是两个不同大小的按钮,其中2expand=True ,当使用expand=True时,side将不会生效!
side:使控件靠窗口的指定方向并排,side可取值LEFT,RIGHT,TOP,BOTTOM.
anchor:对齐方式,可取值“n”, “s”, “w”, “e”, “nw”, “sw”, “se”, “ne”, “center”(默认为” center”)
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可以将控件区块式摆放.
常用参数:
row: 行号,区分不同控件是否处于同一行
column: 列号,区分不同控件是否处于同一列
sticky: 决定控件的贴靠方向,该选项从集合N,S,E,W [东南西北的意思],中取一个或多个值。比如要将标签与左边框对齐,可以使用W(西)
rowspan:行跨度,决定某个控件占的行数 ,默认一行
columnspan:列跨度,决定某个控件占的列数,默认一列
ipadx, ipady:内边距
padx,pady:外边距
适用情况:
设计对话框的时候特别方便
区块化摆放的时候
补充:
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,sticky label_user.grid(row=0,column=0,sticky=W) #一个有sticky,一个没有sticky,以作区分 label_pwd.grid(row=1,column=0) # rowspan,columnspan user.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,threading label=Label(text="欢迎登录!",bg='blue') label.grid() def run(): start_time=time.time() while True: if time.time()-start_time>3: label.grid_forget() break t=threading.Thread(target=run) t.setDaemon(True) t.start() root.mainloop()
介绍:可以使用绝对的位置或相对位置来摆放控件。
常用参数:
x:控件在窗口中的x坐标
y:控件在窗口中的y坐标
relx,rely:与主窗口的相对位置,比如
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,threading label2=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() break t=threading.Thread(target=run) t.setDaemon(True) t.start() root.mainloop()
python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮点型)。2.字符串,分别是str类型和unicode类型。3.布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和False(假)。4.列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5. 元组,元组用”()”标识,内部元素用逗号隔开。6. 字典,字典是一种键值对的集合。7. 集合,集合是一个无序的、不重复的数据组合。
以上是“Python GUI中tkinter界面布局显示的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联成都网站设计公司行业资讯频道!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。