Python GUI编程笔记:tkinter界面布局详解
pack:
- 简介:
- 常用参数:
- fill:填充分配给控件的空间,fill:X为填充
- side:将控件并排放置在窗口的指定方向。side可以取值LEFT、RIGHT、TOP、BOTTOM。

- anchor:对齐方式,取值可以是“n”、“s”、“w”、“e”、“nw”、“sw”、“se”、“ne”、“center”(默认是“中”)

- ipadx,ipady:padding
- padx,pady:margin
- 适用场景:package相对于grid有一些限制,但在一些但常见的情况下使用起来要方便得多:
- 将一个小部件放置在框架(或其他容器小部件)中,并使其填充整个框架
- 合并多个小部件
- 并排放置多个小部件
- 附加:
- 共同功能:
- :由窗口调用来配置包。控制的是窗口的大小。当flag=0时,窗口大小将不再仅仅包围所有控件。此时,窗口的高度和宽度设置即可生效
- pack_forget():移除控件,但不会运行。破坏了,可以重新打包或者使用其他方法来
- pack_info():返回pack提供的选项对应的值。
- pack_slaves():以列表形式返回该组件的所有子组件对象。
- 共同功能:
from tkinter import * root=Tk() # for i in range(10): ##side # btn = Button(text=i) # (side=LEFT) # (side=RIGHT) # (side=(TOP,LEFT)) ####fill # (fill=X) # (side=LEFT,fill=Y) # (fill=BOTH) ##expand # btn1=Button(text=1,bg='green') # btn2=Button(text=2,bg='yellow') # (fill=X) # (expand=True) #anchor: # btn1=Button(text=1,bg='green') # btn2=Button(text=2,bg='yellow') # (fill=X) # (anchor=E) #pack_propagete # btn1=Button(text=1,bg='green') # btn2=Button(text=2,bg='yellow') # (0) # () # () #pack_forget: # import time,threading # label=Label(text="警告!") # () # def run(): # start_time=() # while True: # if ()-start_time>3: # _forget() # break # t=(target=run) # (True) # () ()
网格:
from tkinter import *
root=Tk()
("我的窗口")
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,以作区分
(row=1,column=0)
# rowspan,columnspan
user.grid(row=0,column=1)
(row=1,column=1)
btn=Button(text="提交")
(row=0,column=3,rowspan=2,columnspan=2,padx=5, pady=5)
# 下面主要是将第一列拉大来显示上面sticky的效果
v=IntVar()
check=Checkbutton(text="下次自动登录",variable=v,)
(row=2,column=0,sticky=W)
# _forget:
import time,threading
label=Label(text="欢迎登录!",bg='blue')
()
def run():
start_time=()
while True:
if ()-start_time>3:
_forget()
break
t=(target=run)
(True)
()
()位置:
from tkinter import *
root=Tk()
('100x100')
label=Label(text="用户名:",bg='green')
entry=Entry()
(fill=X)
#x,y
# (x=0,y=0)
#relx,rely
# (relx=0.3, rely=0.3)
# (relx=0.5, rely=0.5)
#relheight,relwidth
# (relx=0.5, rely=0.5,relheight=0.5,relwidth=0.5)
#_forget:
import time,threading
label2=Label(text="警告!",bg='blue')
(relx=)
def run():
start_time=()
while True:
if ()-start_time>3:
_forget()
break
t=(target=run)
(True)
()
() 版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网
