Python_tkinter_Frame 框架

Frame 框架

thinter.Menu(用于存放的父组件,属性参数...)
具有以下属性
background(bg)          正常的背景颜色显示在标签和指示器后面。
borderwidth(bd)          指标周围边界的大小。默认值为2像素。
cursor                         如果将此选项设置为光标名称(箭头,点等),则鼠标光标将在检查按钮上方更改为该模式。
height                         新框架的垂直尺寸。
highlightbackground  当框架没有焦点时,焦点的颜色突出显示。
highlightcolor             当框架具有焦点时,焦点突出显示的颜色。
highlightthickness      焦点亮点的厚度。
relief                           使用默认值,relief = FLAT,检查按钮不会从背景中脱颖而出。您可以将此选项设置为任何其他样式
width                           checkbutton的默认宽度取决于所显示的图像或文字的大小。你可以设置此选项的字符数和checkbutton的,总是有许多字符的空间。
参数
Frame(master=None, **options) (class)
master -- 父组件


**options -- 组件选项,下方表格详细列举了各个选项的具体含义和用法:

选项

含义

background

1. 设置 Frame 组件的背景颜色
2. 默认值由系统指定
3. 为了防止更新,可以将颜色值设置为空字符串

bg

background 一样

borderwidth

1. 指定 Frame 的边框宽度
2. 默认值是 0

bd

borderwidth 一样

class_

默认值是 Frame

colormap

1. 有些显示器只支持 256 色(有些可能更少),这种显示器通常提供一个颜色映射来指定要使用要使用的 256 种颜色
2. 该选项允许你指定用于该组件以及其子组件的颜色映射
3. 默认情况下,Frame 使用与其父组件相同的颜色映射
4. 使用此选项,你可以使用其他窗口的颜色映射代替(两窗口必须位于同个屏幕并且具有相同的视觉特性)
5. 你也可以直接使用 "new" Frame 组件分配一个新的颜色映射
6. 一旦创建 Frame 组件实例,你就无法修改这个选项的值

container

1. 该选项如果为 True,意味着该窗口将被用作容器,一些其它应用程序将被嵌入 
2.
默认值是 False

cursor

1. 指定当鼠标在 Frame 上飘过的时候的鼠标样式
2. 默认值由系统指定

height

1. 设置 Frame 的高度
2. 默认值是 0

highlightbackground

1. 指定当 Frame 没有获得焦点的时候高亮边框的颜色
2. 默认值由系统指定,通常是标准背景颜色

highlightcolor

1. 指定当 Frame 获得焦点的时候高亮边框的颜色
2. 默认值由系统指定

highlightthickness

1. 指定高亮边框的宽度
2. 默认值是 0(不带高亮边框)

padx

水平方向上的边距

pady

垂直方向上的边距

relief

1. 指定边框样式
2. 默认值是 FLAT
3.
另外你还可以设置 SUNKENRAISEDGROOVE RIDGE
4.
注意,如果你要设置边框样式,记得设置 borderwidth bd 选项不为 0,才能看到边框

takefocus

1. 指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来)
2. 默认值是 False

visual

1. 为新窗口指定视觉信息
2. 该选项没有默认值

width

1. 设置 Frame 的宽度
2. 默认值是 0

EG1:

from tkinter import *

root = Tk()
Label(root, text="one").pack()

separator = Frame(height=2, bd=1, relief=GROOVE , padx=10, width=20)
separator.pack(fill=X, padx=10, pady=6)
Label(root, text="two").pack()
separator = Frame(height=5, bd=1, relief=RAISED ,  width=20).pack(fill=X, padx=10, pady=6)
Label(root, text="three").pack()
root.mainloop()

实行结果:

EG2:

from tkinter import *
root = Tk()

root.geometry('500x600')
Label(root ,text="Label").pack()
frame1 = Frame(root,bg="purple").pack()
frame2 = Frame(frame1,bg='red')
frame2.pack(side=LEFT,padx=20)
frame3 = Frame(frame1,bg='yellow',highlightcolor="red")
frame3.pack(side=RIGHT,padx=100)
Label(frame2,text="我的世界").pack()
Label(frame2,text="魔兽争霸").pack()
Label(frame3,text="极品飞车22").pack()

root.mainloop()

实行结果:

EG3:

from tkinter import *

root = Tk()
for fm in ['red', 'blue', 'yellow', 'green', 'white', 'black']:
    Frame(root, height=20, width=300, bg=fm).pack()

root.mainloop()

实行结果:

EG4:

from tkinter import *

root = Tk()
fm = []

for color in ['red', 'blue']:
    fm.append(Frame(root, height=300, width=400, bg=color))

Label(fm[1], text="hello label").pack() # 下面都注掉的话不会显示label,因为它的主窗口是fm[1],fm[1]没有.pack() ,只显示主屏幕
# fm[0].pack()
fm[1].pack()
# print(fm)
root.mainloop()

实行结果:

将以下注释解开:

fm[0].pack()

EG5:

from tkinter import *
root = Tk()
# 两个窗口框架
frame1 = Frame(root)
frame2 = Frame(root)
#第一个窗口设置提示信息
var = StringVar()
var.set('您不是会员不能下载VIP资源\n前先注册会员再来下载资源')
#textvariable:如果这个变量的值改变,那么按钮上的文本相应更新。
textLabel = Label(frame1,textvariable=var,justify=LEFT)
textLabel.pack(side=RIGHT)
## PhotoImage()方法只支持gif格式的图片。
phtot = PhotoImage(file=r"E:\002.jpg")
imglabel = Label(root,image=phtot)
imglabel.pack(side=LEFT)
def callback():
    var.set("你的身份验证失败,你不是会员")
# 触发callback方法
button1 = Button(frame2,text="我已经注册会员",command=callback)
button1.pack()

frame1.pack(padx=10,pady=10)
frame2.pack(padx=10,pady=10)
root.mainloop()

EG6:

from tkinter import *
def open():
    global a
    a = Toplevel()
    a.title("标题")
def close():
    # 调用Toplevel中的withdraw方法,关闭顶级窗口
    a.withdraw()
root = Tk()
button1 = Button(root,text="开始",command=open)
button1.pack()
# 通过按钮关闭顶级窗口
button2 = Button(root,text="关闭",command=close)
button2.pack()

root.mainloop()

实行结果:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值