Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

简介: Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

一、Label控件

【Label控件官方原文:label manual page - Tk Built-In Commands

label控件就是标签控件,最基本的控件之一,可以用来显示文本和位图

w = Label(parent, option, ...)

parent是父控件,option是一些参数

【参数说明】image.pngimage.png【活动状态】如果鼠标光标位于控件上,并且按下鼠标左键导致某些操作发生,则控件或控件的一部分将处于活动状态。Windows系统下仅当鼠标左键按在控件上时才处于活动状态。

【博主认为(可能有误):活动状态貌似仅对于某些控件(如Button)有效】

【relief参数】

【方法说明】image.png【示例代码】

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是一些参数

【参数说明】

image.png

【方法说明】image.png【示例代码】

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是一些参数

【参数说明】image.pngimage.pngimage.png【方法说明】image.png【示例代码】

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命令的效果

目录
相关文章
|
1天前
|
数据采集 存储 数据处理
使用Python获取1688商品详情的教程
使用Python爬取1688商品详情,涉及requests库抓取页面、BeautifulSoup解析HTML,安装必要库如requests、beautifulsoup4、pandas和lxml。通过get_page发送请求,BeautifulSoup解析提取如标题、价格等信息。数据处理后可使用pandas保存至CSV。注意遵守法律法规和网站政策,避免频繁请求。[代码片段及更多详情见链接
|
21小时前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
4 0
python之字符串定义、切片、连接、重复、遍历、字符串方法
|
18小时前
|
分布式计算 API 开发者
编写高质量Python代码的方法
编写高质量Python代码的方法
12 0
|
18小时前
|
数据可视化 Python
详尽分享用Python进行时间序列预测的7种方法
详尽分享用Python进行时间序列预测的7种方法
|
1天前
|
机器学习/深度学习 自然语言处理 TensorFlow
使用Python实现深度学习模型:BERT模型教程
使用Python实现深度学习模型:BERT模型教程
46 0
|
2天前
|
Python
Python yield与实现教程分享
Python yield与实现教程分享
|
2天前
|
Python
Python深入学习教程
Python深入学习教程
|
3天前
|
机器学习/深度学习 人工智能 前端开发
Python中的模块化编程
【6月更文挑战第17天】Python模块化编程与软件架构设计的关键在于拆分任务到独立模块,提高代码的可维护性、可重用性和可扩展性。例如,学生管理系统可分解为录入、查询和删除模块。MVC和MVVM架构模式有助于组织代码,而微服务和函数式编程将在未来发展中扮演重要角色。通过示例代码,读者能学习如何实现这些概念,提升项目开发效率和质量。
148 57
|
10天前
|
测试技术 虚拟化 云计算
GitHub高赞!速通Python编程基础手册,被玩出花了!
随着云时代的来临,Python 语言越来越被程序开发人员喜欢和使用,因为其不仅简单易学,而且还有丰富的第三方程序库和相应完善的管理工具。 从命令行脚本程序到 GUI程序,从图形技术到科学计算,从软件开发到自动化测试,从云计算到虚拟化,所有这些领域都有 Python 的身影。 今天给小伙伴们分享的这份手册采用以任务为导向的编写模式,全面地介绍了 Python 编程基础及其相关知识的应用,讲解了如何利用 Python 的知识解决部分实际问题。
GitHub高赞!速通Python编程基础手册,被玩出花了!
|
2天前
|
Python
Python多进程编程详细剖析
Python多进程编程详细剖析
13 3