1.Tkinter简单介绍
Tkinter是Python的标准GUI(图形用户界面)库,提供一种简单的方式来创建窗口程序。Tkinter封装了访问Tk GUI工具包的接口,Tk是一个跨平台的GUI开发库,广泛用于创建图形界面。
使用Tkinter,开发者可以快速地创建如窗口、对话框、按钮、菜单、文本框等GUI元素,并定义这些元素的行为,处理用户的交互行为。它广泛用于以下工作:
-
快速原型开发:由于Python的简单性,加上Tkinter的易用性,它非常适合用于快速开发桌面应用的原型。
-
教育和入门级项目:对于学习编程和GUI开发的初学者,Tkinter提供了一个较为容易的学习路径。
-
内部工具和独立应用:对于小型业务和实验室,Tkinter是快速开发专用工具或简单应用程序的理想选择。
-
数据可视化和简单的交互式工具:Tkinter可以用来开发需要图形用户界面的数据分析工具。
尽管Tkinter在功能和现代性方面可能不如其他更先进的GUI框架(如 PyQt 或 Electron),它仍然是入门级和中小型应用的一个非常可靠的选择,因为它的轻量级、简单易学,并且不需要安装额外的库就可以使用。
2.Tkinter的简单使用
① 创建一个Tk根目录
# 创建第一个tkinter程序
from tkinter import * # # 从tkinter库导入所有模块
root=Tk() # 创建一个Tk根窗口,用来容纳整个GUI应用
root.mainloop() # 启动应用的事件循环,等待用户交互
② 添加GUI标题
# Tk类解读
from tkinter import *
root=Tk()
root.wm_title("窗口标题为:Python Tkinter")
root.mainloop()
③ 添加标签
# 组件--label标签
from tkinter import *
# 创建一个TK实例root
root=Tk()
root.wm_title('这是一个tkinter示例')
w1=Label(root,text='正在学习Tkinter',background='red',underline=True) # 创建一个Label实例
w1.pack() # 找个合适的位置进行放置
root.mainloop()
④ 添加多个标签
from tkinter import *
#首先、创建一个tkinter实例
root=Tk()
root.wm_title('创建多个标签Label')
w1=Label(root,text='我是第一个Label',background='yellow')
w2=Label(root,text='我是第二个Label',background='red')
w3=Label(root,text='我是第三个Label',background='green')
w1.pack()
w2.pack()
w3.pack()
root.mainloop()
⑤ 添加按钮组件
# 组件--按钮
from tkinter import *
def create_label(): # 定义一个名为create_label的函数,当按钮被点击时,这个函数将被调用
global root # 通过使用global关键字声明root,确保函数内部可以访问到在外部定义的root变量
w=Label(root,text='我是一个Label') # 在根窗口root中创建一个新的Label标签,文本内容为“我是一个Label”
w.pack() # 使用pack()几何管理器来自动调整标签的位置和大小,并使其在窗口中显示
root=Tk() # 创建Tk实例
# Button是Tkinter中用于创建按钮的组件,root参数指定了按钮将被放置在哪个容器中,在这里是根窗口root;text='点击我添加一个label'设置按钮上显示的文本;command=create_label参数指定了当按钮被点击时应该执行的函数,这里绑定到了前面定义的create_label函数
button=Button(root,text='点击我添加一个label',command=create_label)
button.pack() # 自动调整其位置和大小
root.mainloop() # 启动Tkinter的事件监听循环,这使得窗口能够保持开启状态,并响应用户的操作,比如按钮点击事件。
⑥ 创建两个按钮并设置属性
# 设置button的属性
from tkinter import *
#创建一个tkinter实例
root=Tk()
button1=Button(root,text='按钮1')
button1['width']=20
button1['height']=2
button1['background']='yellow'
button1.pack()
button2=Button(root,text='按钮2')
button2['width']=30
button2['height']=1
button2['background']='green'
button2.pack()
root.mainloop()
⑦ 设置GUI布局
下面的示例代码展示的是pack
布局管理器的基本用法,展示如何通过不同的参数调整组件的布局和扩展方式。pack
是Tkinter中三种主要的几何管理器之一,它可以按照指定的方向顺序排列窗口部件。
# 布局介绍
# pack布局
from tkinter import *
root=Tk()
# 创建一个按钮,文本为"A",side=LEFT指定按钮在其容器中靠左对齐,expand=YES:允许按钮在用户调整窗口大小时水平扩展,fill=Y:在垂直方向上填满整个分配给它的空间
Button(root,text='A').pack(side=LEFT,expand=YES,fill=Y)
# 创建一个按钮,文本为"B",side=TOP:指定按钮位于其容器的顶部,expand=YES:允许按钮在用户调整窗口大小时水平和垂直扩展,fill=BOTH:让按钮填满在水平和垂直方向上分配给它的所有空间
Button(root,text='B').pack(side=TOP,expand=YES,fill=BOTH)
# 创建一个按钮,文本为"C",side=RIGHT:指定按钮在其容器中靠右对齐,fill=NONE:按钮不填充额外空间,anchor=NE:按钮的锚点位于北东(右上角)
Button(root,text='C').pack(side=RIGHT,fill=NONE,anchor=NE)
root.mainloop()
⑧ grid布局管理器创建简单的登录界面
#grid布局
from tkinter import*
root=Tk()
# 在第一行第一列创建一个标签(Label)组件,显示文本“账号”,sticky=W参数使得标签靠近网格单元的西部(左侧)
Label(root,text='账号').grid(row=0,sticky=W)
# 在第一行第二列创建一个输入框(Entry),用于输入账号,sticky=E使得输入框靠近网格单元的东部(右侧)
Entry(root).grid(row=0,column=1,sticky=E)
# 与上面同样的方法
Label(root,text='密码').grid(row=1,sticky=W)
Entry(root).grid(row=1,column=1,sticky=E)
# 在第三行第二列创建一个按钮,显示文本“登录”。sticky=W参数使按钮靠左对齐
Button(root,text='登录').grid(row=2,column=1,sticky=W)
# 在同一行同一列创建另一个按钮,显示文本“注册”。sticky=E参数使按钮靠右对齐
Button(root,text='注册').grid(row=2,column=1,sticky=E)
root.mainloop()
以上内容总结自网络,如有帮助欢迎转发,我们下次再见!