thinter.Menu(用于存放的父组件,属性参数...)
具有以下属性
background(bg) 正常的背景颜色显示在标签和指示器后面。
borderwidth(bd) 指标周围边界的大小。默认值为2像素。
cursor 如果将此选项设置为光标名称(箭头,点等),则鼠标光标将在检查按钮上方更改为该模式。
height 新框架的垂直尺寸。
highlightbackground 当框架没有焦点时,焦点的颜色突出显示。
highlightcolor 当框架具有焦点时,焦点突出显示的颜色。
highlightthickness 焦点亮点的厚度。
relief 使用默认值,relief = FLAT,检查按钮不会从背景中脱颖而出。您可以将此选项设置为任何其他样式
width checkbutton的默认宽度取决于所显示的图像或文字的大小。你可以设置此选项的字符数和checkbutton的,总是有许多字符的空间。
参数
Frame(master=None, **options) (class)
master -- 父组件
选项 |
含义 |
background |
1. 设置 Frame 组件的背景颜色 |
bg |
跟 background 一样 |
borderwidth |
1. 指定 Frame 的边框宽度 |
bd |
跟 borderwidth 一样 |
class_ |
默认值是 Frame |
colormap |
1. 有些显示器只支持 256 色(有些可能更少),这种显示器通常提供一个颜色映射来指定要使用要使用的 256 种颜色 |
container |
1. 该选项如果为 True,意味着该窗口将被用作容器,一些其它应用程序将被嵌入 |
cursor |
1. 指定当鼠标在 Frame 上飘过的时候的鼠标样式 |
height |
1. 设置 Frame 的高度 |
highlightbackground |
1. 指定当 Frame 没有获得焦点的时候高亮边框的颜色 |
highlightcolor |
1. 指定当 Frame 获得焦点的时候高亮边框的颜色 |
highlightthickness |
1. 指定高亮边框的宽度 |
padx |
水平方向上的边距 |
pady |
垂直方向上的边距 |
relief |
1. 指定边框样式 |
takefocus |
1. 指定该组件是否接受输入焦点(用户可以通过 tab 键将焦点转移上来) |
visual |
1. 为新窗口指定视觉信息 |
width |
1. 设置 Frame 的宽度 |
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()
实行结果: