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

2020-03-3020:11:31后端程序开发Comments2,397 views字数 2215阅读模式

pack:

    • 介绍:
    • 常用参数:
      • 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控件时窗口的大小,当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)
  # (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)
# ()

()

grid:

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)
()



()

place:

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)
()

()
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/17979.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/17979.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定