python之tkinter库的frame组件

frame作用就是为了布局,将一组组件作为一个整体放在一个frame中,也方便对这一组组件进行控制。frame组件作为其他组件的框架,将布局分为一个个单独的空间,配合其他布局函数以实现复杂的界面布局。

语法:

Frame(父对象,参数列表,……)

Frame(master=none,**options)(class)

参数:

参数名称

属性

举例或备注

background或bg

组件背景颜色

borderwidth或bd

边框宽度

width

宽度

默认:0

height

高度

container

是否作为容器,可嵌入其他应用程序。

默认:Flase

cursor

在frame上时的鼠标样式。

取值可以是加号 plus 圆圈 circle等

默认:系统指定

highlightbackground

未获得焦点时,组件颜色。

默认:系统指定

highlightcolor

获得焦点时,组件的颜色。

默认:系统指定

highlightthickness

frame组件厚度

默认:0

padx

横向边距

pady

纵向边距

relief

边框样式。

可选参数:sunken、raised、groove、ridge

默认:flat

takefocus

是否接受输入焦点(tab键选择组件)

默认:假

默认如entry即使此值为假仍可获得焦点。label必须此值为真才可以。

代码综合示例:

import tkinter as tk

root = tk.Tk()
# 父框架,背景是白色高400,宽800,边10,横和纵边距为20和30,边框的风格是sunken。
frameMaster0 = tk.Frame(root,bg='white',height='400',width='800',bd='10',padx='20',pady='30',relief='sunken',)
# takefocus 默认是否。焦点默认是不会访问标签控件,只有设置为true时,tab键才可用来选择框架内的控件。
# 经验证,takefocus使用0或1代表假或真。entry组件默认即使不通过takefocus设置仍然可以通过tab键访问。
frameMaster1 = tk.Frame(frameMaster0,bg='lightblue',height='400',width='500',bd='10',padx='20',pady='200',takefocus='1')
# 鼠标移动到frameMaster2框架内变为加号
frameMaster2 = tk.Frame(frameMaster0,bg='red',height='200',width='200',bd='10',cursor='plus',)
frameMaster3 = tk.Frame(frameMaster0,bg='green',height='200',width='200',bd='10',cursor='circle')
frameMaster4 = tk.Frame(root,bg='orange',height='50',width='100',bd='10')
frameMaster5 = tk.Frame(root,bg='green',height='80',width='120',bd='10')
# 即使框架本身设置了宽、高等,仍然要考虑框架中组件的大小,会影响框架的实际大小。
label1 = tk.Label(frameMaster1,text='label1')
btn1 = tk.Button(frameMaster1,text='btn1')
entry1 = tk.Entry(frameMaster2,bd=5,width='20')
entry2 = tk.Entry(frameMaster2,bd=5,width='20')

frameMaster0.pack()
# 设置frameMaster1排列在frameMaster0框架内的左侧。属性可以是LEFT RIGHT TOP BOTTOM
frameMaster1.pack(side=tk.LEFT)
frameMaster2.pack()
frameMaster3.pack()

frameMaster4.pack()
frameMaster5.pack()
label1.pack()
btn1.pack()
entry1.pack()
entry2.pack()

root.mainloop()

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值