一、Label控件
【Label控件官方原文:label manual page - Tk Built-In Commands】
label控件就是标签控件,最基本的控件之一,可以用来显示文本和位图
w = Label(parent, option, ...)
parent是父控件,option是一些参数
【参数说明】【活动状态】如果鼠标光标位于控件上,并且按下鼠标左键导致某些操作发生,则控件或控件的一部分将处于活动状态。Windows系统下仅当鼠标左键按在控件上时才处于活动状态。
【博主认为(可能有误):活动状态貌似仅对于某些控件(如Button)有效】
【relief参数】
【方法说明】【示例代码】
from tkinter import *#导入tkinter模块 root = Tk()#创建主窗口 root.title('一个窗口')#设置窗口标题 root.geometry('300x200+200+200')#设置窗口大小及位置 #创建一个标签控件并赋值给label变量 label = Label(root,text='这是一个标签',bg='grey',fg='#F0F0F0',font=('华文新魏',15),bd=5,relief='groove') label.pack()#放置标签控件 root.mainloop()#主窗口进入消息事件循环
【运行效果】
【特别说明】这里我们先不去讨论控件的放置问题(这里用的几何管理方法是Pack)后面我们再对控件的放置进行讨论,这里特别要说明的是,任何一个基本控件的第一个参数一定是它的父控件,在上面的代码中Label控件的父控件是Toplevel控件中的一种容器控件,即root。关于Toplevel控件容器控件的说明见:Python Tkinter教程(一)——tkinter编程基本步骤、窗口基本属性及Toplevel控件的使用
二、Frame控件
【Frame控件官方原文:frame manual page - Tk Built-In Commands】
Frame控件就是框架控件,一种基本容器控件,可以充当其他基本控件的父控件
w = Frame(parent, option, ...)
parent是父控件,option是一些参数
【参数说明】
【方法说明】【示例代码】
from tkinter import *#导入tkinter模块 root = Tk()#创建主窗口 root.title('一个窗口')#设置窗口标题 root.geometry('300x200+200+200')#设置窗口大小及位置 frame = Frame(root,bg='lightgreen')#创建一个框架 frame.place(width=200,height=100,x=50,y=50)#放置框架 #这一步骤很关键,不可以直接写成“frame = Frame(root,bg='lightgreen',height=100,width=200).place(width=200,height=100,x=50,y=50)”,不然会报错! #创建一个标签控件并赋值给label变量 Label(frame,text='这是一个标签',bg='grey',fg='#F0F0F0',font=('华文新魏',15),bd=5,relief='groove').pack()#为了简化代码,这里就直接放置标签控件 root.mainloop()#主窗口进入消息事件循环
【运行效果】
【特别说明】 这里用了两种几何布局管理器(Place和Pack)我们暂且先不管, 这里我们要注意一个非常非常重要而且易错的地方!上面创建Label控件的时候没有把控件赋值给一个变量,而是直接把它的布局写在了后面(.pack()写在后面),在其他代码没有涉及到这个控件时这样做是没有问题的,但是对于上面的Frame控件就不行!因为Label控件的父控件是Frame控件!
创建Frame控件并赋值给frame变量,此时frame代表的是一个Frame控件。但是!如果直接写成下面这样的错误写法:
frame = Frame(root,bg='lightgreen',height=100,width=200).place(width=200,height=100,x=50,y
即,把几何布局一起写在了后面,这样做那么此时frame变量代表的值不是一个Frame控件,而是None!有图有真相,请看下面:
正确做法
有时候简化代码可以,有时候不行,会犯错,平时我们要多多注意!
三、Button控件
【Button控件官方原文:button manual page - Tk Built-In Commands】
Button控件就是我们最喜欢的按钮控件,点击它可以执行相关的函数
w = Button(parent, option, ...)
parent是父控件,option是一些参数
【参数说明】【方法说明】【示例代码】
from tkinter import *#导入tkinter模块 root = Tk()#创建主窗口 root.title('一个窗口')#设置窗口标题 root.geometry('300x200+200+200')#设置窗口大小及位置 b = Button(root,relief='flat',activebackground='orange',bg='lightgreen',overrelief='raised',text='Click',command=lambda:print(b.cget('relief')))#创建按钮 b.place(width=100,height=30,x=100,y=100)#放置按钮 root.mainloop()#主窗口进入消息事件循环
【运行效果】
这3幅效果图分别是【鼠标光标未经过按钮】【鼠标光标悬停在按钮上】【按下按钮但不释放】
按下按钮后执行command命令的效果