Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >图形界面入门之tkinter

图形界面入门之tkinter

作者头像
一只大鸽子
发布于 2022-12-06 01:22:57
发布于 2022-12-06 01:22:57
1.9K0
举报

tkinter简介

tkinter是Python自带的一个GUI包。优缺点非常明显:

优点:简单、快速、无需安装

缺点:界面复古,缺少对一些复杂功能的支持

(注意,Python2的tkinter名称为Tkinter,我们不讨论它)

启动tkinter

在命令行输入

python -m tkinter

就会弹出一个tkinter窗口:

最上面首先是版本是8.6,点击click me!貌似什么都不会发生,点击QUIT就可以退出。

下面介绍tkinter的简单用法,更多的可以到网站GUI是什么 (biancheng.net)或

Python GUI 编程(Tkinter) | 菜鸟教程 (runoob.com) 或Tkinter 8.5 reference: a GUI for Python (tkdocs.com)学习。

tkinter HelloWorld

我们来做一个Helloworld窗口,来了解tkinter的流程。

使用tkinter创建一个窗口,标题名称为Hello,world。

代码语言:javascript
AI代码解释
复制
# -*- coding:utf-8 -*-
import tkinter as tk
# 调用Tk()创建主窗口
root_window =tk.Tk()
# 给主窗口起一个名字,也就是窗口的名字
root_window.title('Hello,world')
#设置窗口大小 450x300
root_window.geometry('450x300')
#开启主循环,让窗口处于显示状态
root_window.mainloop()


  1. 流程如下:
  2. 1. 导入 tkinter
  3. 2. 创建主窗口:root_window =tk.Tk()
  4. 3. 设置窗口属性(标题、大小):

root_window.title('Hello,world')

root_window.geometry('450x300')

  1. 4. 开启主循环

root_window.mainloop()

tkiner 身高计算器

现在我们来做一个有功能的tkinter程序。

效果如下:我们输入身高,点击计算。然后程序通过计算,得到我们的身高并显示出来。

那么我们在上面Helloworld程序的基础上开始制作。首先,我们把窗口名改成“身高计算器”。

root_window.title('身高计算器')

然后我们要把按钮,提示信息放上去。

代码语言:javascript
AI代码解释
复制
# root_window.geometry('450x300')下面添加...
# 设置完窗口后,添加组件
tk.Label(root_window, text="请输入身高").pack()

cms= StringVar()
tk.Entry(root_window, width=7, textvariable=cms).pack()

tk.Label(root_window, text="cm").pack()
tk.Label(root_window, text="你的身高是").pack()

result = StringVar()
tk.Label(root_window, textvariable=result).pack()

tk.Label(root_window, text="cm").pack()

B = tk.Button(root_window, text="计算")
B.pack()

我们主要用到了三种组件,tk.Labeltk.Entrytk.Button,分别表示文本标签、输入框、按钮。创建完组件后需要调用.pack()方法放置,否则不会出现在界面上。

说明:以这个tk.Label为例。参数需要传入它的父容器(这里是root_window),文字内容(text="请输入身高")。然后调用.pack()方法将它放在窗口上。

tk.Label(root_window, text="请输入身高").pack()

这个我们也可以让Label的文字是一个变量。下面我们先创建一个变量result = StringVar(),然后将result作为tk.Label的参数。

result = StringVar() tk.Label(root_window, textvariable=result).pack()

但是点击计算后,并不会有动作,我们还需要将点击按钮和功能绑定。

我们定义函数calculate来实现功能,先获取输入的数据(cmt.get()),再设置输出文本的数据(result.set())。

代码语言:javascript
AI代码解释
复制
def calculate(*args):
    try:
        value = float(cms.get())
        result.set(value)
    except ValueError:
        pass

并且通过command=calculate 将calculate方法和点击按钮绑定。

代码语言:javascript
AI代码解释
复制
B = tk.Button(root_window, text="计算",command=calculate)

完整代码:

代码语言:javascript
AI代码解释
复制
# -*- coding:utf-8 -*-
import tkinter as tk
from tkinter import *

# 调用Tk()创建主窗口
root_window = tk.Tk()
# 给主窗口起一个名字,也就是窗口的名字
root_window.title('身高计算器')
# 设置窗口大小 450x300
root_window.geometry('450x300')

# root_window.geometry('450x300')下面添加...
# 设置完窗口后,添加组件
tk.Label(root_window, text="请输入身高").pack()

cms = StringVar()
tk.Entry(root_window, width=7, textvariable=cms).pack()

tk.Label(root_window, text="cm").pack()
tk.Label(root_window, text="你的身高是").pack()

result = StringVar()
tk.Label(root_window, textvariable=result).pack()

tk.Label(root_window, text="cm").pack()


def calculate(*args):
    try:
        value = float(cms.get())
        result.set(value)
    except ValueError:
        pass


B = tk.Button(root_window, text="计算", command=calculate)
B.pack()

# 开启主循环,让窗口处于显示状态
root_window.mainloop()

除了通过.pack()放置组件,另一种更灵活的方式是.grid(row=r,column=0)方式。这种方式将界面作为网格,然后在网格上放置组件。

代码语言:javascript
AI代码解释
复制
# 设置完窗口后,添加组件
tk.Label(root_window, text="请输入身高",).grid(row=0,column=0)

cms = StringVar()
tk.Entry(root_window, width=7, textvariable=cms).grid(row=0,column=1)

tk.Label(root_window, text="cm").grid(row=0,column=2)
tk.Label(root_window, text="你的身高是").grid(row=1,column=0)

result = StringVar()
tk.Label(root_window, textvariable=result).grid(row=1,column=1)

tk.Label(root_window, text="cm").grid(row=1,column=2)


def calculate(*args):
    try:
        value = float(cms.get())
        result.set(value)
    except ValueError:
        pass


B = tk.Button(root_window, text="计算", command=calculate)
B.grid(row=3,column=3)

当然,如果你觉得字体太小,也可以在font参数设置,font是一个三元组( family, size, style),分别是(字体,大小,格式)。

代码语言:javascript
AI代码解释
复制
tk.Label(root_window, text="请输入身高",font=("Courier", 24, "italic"),height=3).grid(row=0,column=0)

tkinter BMI计算器

稍作修改,我们就可以做出一个BMI计算器:

代码:

代码语言:javascript
AI代码解释
复制
# -*- coding:utf-8 -*-
import tkinter as tk
from tkinter import *

# 调用Tk()创建主窗口
root_window = tk.Tk()
# 给主窗口起一个名字,也就是窗口的名字
root_window.title('BMI计算器')
# 设置窗口大小 450x300
root_window.geometry('450x300')

# root_window.geometry('450x300')下面添加...
# 设置完窗口后,添加组件
tk.Label(root_window, text="请输入身高cm",height=3).grid(row=0,column=0)
cms = StringVar()
tk.Entry(root_window, width=7, textvariable=cms).grid(row=0,column=1)
tk.Label(root_window, text="cm").grid(row=0,column=2)

tk.Label(root_window, text="请输体重kg",height=3).grid(row=1,column=0)
kg = StringVar()
tk.Entry(root_window, width=7, textvariable=kg).grid(row=1,column=1)
tk.Label(root_window, text="kg").grid(row=1,column=2)


tk.Label(root_window, text="你BMI是").grid(row=2,column=0)
result = StringVar()
tk.Label(root_window, textvariable=result).grid(row=2,column=1)



def calculate(*args):
    try:
        cm_ = float(cms.get())
        kg_ = float(kg.get())
        value_ =  kg_ /  ((cm_/100) **2)
        value_ = value_.__round__(3)
        result.set(value_)
    except ValueError:
        pass


B = tk.Button(root_window, text="计算", command=calculate)
B.grid(row=3,column=3)

# 开启主循环,让窗口处于显示状态
root_window.mainloop()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一只大鸽子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
我的tkinter学习笔记2
接着上篇tkinter的学习记录 1、tkinter之单选和多选 #coding:utf-8 from tkinter import * # 定义一个root主窗口 root = Tk() root.title("应用程序窗口") # 定义两个变量,用于判断复选框状态 box_1 = False box_2 = False # 列表,用于存放选中内容 List_Content = [] def click_c1(): global box_1 # 复选框被选中,box_1置为True
用户6367961
2020/04/07
6780
Python初学——窗口视窗Tkinter
此篇文章是跟着沫凡小哥的视频学习的,附上学习网址:https://morvanzhou.github.io/tutorials/python-basic/ 什么是 tkinter 窗口 1.1 什么是
闪电gogogo
2018/01/08
7.2K0
Python初学——窗口视窗Tkinter
程序员梦见自己死了,被阎王爷拉去做个地府生死簿管理系统,基于pythonTK原生实现桌面客户端1.0版本!
2019年圈子内有一个段子火了,因为赶进度,做项目996时间工作的程序员工作压力特别大,晚上睡觉的生活做了一个梦,梦见自己见阎王爷了,阎王爷让他为生死簿做个后台管理系统。
菜菜有点菜
2024/04/20
5910
程序员梦见自己死了,被阎王爷拉去做个地府生死簿管理系统,基于pythonTK原生实现桌面客户端1.0版本!
【项目实战】帮美女老师做一个点名小程序(Python tkinter)
博主有一个非常漂亮的老师朋友😍。最近,她急需一个能够实现随机点名的小程序,而博主正好擅长这方面的技术🤏。所以,今天博主决定为她制作一个专门用于点名的小程序💪。
sidiot
2024/02/03
7170
python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程
学习tkinter之余,实现了一个简单的计算器操作,能够满足页面输入参数和计算得到结果 下面是结果展示和源码记录:
全栈程序员站长
2022/09/22
6820
python gui设计 tkinter菜鸟编程_三菱简单运动控制模块教程
Python tkinter 制作一个经典的登录界面和点击事件
Tkinter(即 tk interface) 是 Python 标准 GUI 库,简称 “Tk”;从本质上来说,它是对 TCL/TK 工具包的一种 Python 接口封装。 Tkinter 是 Python 自带的标准库,因此无须另行安装,它支持跨平台运行,不仅可以在 Windows 平台上运行,还支持在 Linux 和 Mac 平台上运行。
松鼠爱吃饼干
2022/12/05
3.2K0
Python tkinter 制作一个经典的登录界面和点击事件
Python ttkbootstrap 制作账户注册信息界面
前言 ttkbootstrap 是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端 bootstrap 风格的 tkinter 桌面程序。 ttkbootstrap 不仅有丰富的案例,同时还有完善的官方文档,可惜是英文的。不过对于程序员来说,只要用好翻译软件与提供的案例代码,一样可以轻松上手,那么接下来我们就介绍一下这个工具的使用。 准备工作 首先肯定是需要安装一下 ttkbootstrap 版本要新,最好不要用镜像源安装 pip install ttkbootstrap 可以先来个小
松鼠爱吃饼干
2022/03/30
2.4K0
Python ttkbootstrap 制作账户注册信息界面
python学生成绩管理系统【完整版】
✅作者简介:大家好我是hacker707,大家可以叫我hacker,新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:python 💬推荐一款模拟面试、刷题神器👉点击跳转进入网站 学生成绩管理系统 学生成绩管理系统简介 源代码🏆 students.txt main.py Login.py db.py MenuPage.py view.py 结束语🏆 学生成绩管理系统简介 一个带有登录界面具有增减改查功能的学生成绩管理系统(面向对象思想,利
hacker707
2022/11/27
1.6K0
python学生成绩管理系统【完整版】
Python 之 tkinter 学习笔记
最近有个小需求需要实现,最后要给出一个 GUI 界面,想了想还是不用 c++ 写 MFC 了,因为还涉及到网络编程,感觉还是简单事情简单做,然后转手写 python,刚开始想尝试 pyqt,但感觉好像还是有点麻烦,本来就只是做个插件,最后就大概看了一下内置的 tkinter,一边写一边学也马上就上手了,总的来说感觉还是简单的。
EmoryHuang
2022/10/31
8.1K0
Python 之 tkinter 学习笔记
python tkinter 设计指南
pack() 是一种较为简单的布局方法,在不使用任何参数的情况下,它会将控件以添加时的先后顺序,自上而下,一行一行的进行排列,并且默认居中显示。pack() 方法的常用参数如下所示:
独元殇
2023/03/21
8.5K0
我的tkinter学习笔记3
这边就上面的知识,进行一个小工具开发。主要实现功能有快速查看设备名、包名和Activity.具体看实现的代码
用户6367961
2020/04/07
5110
Python 图形用户界面(GUI)实战项目:打造个人记账应用
虽然现在很多人使用 App 或 Excel 表格进行个人财务管理,但使用 Python 自建工具有诸多优势:
用户11690575
2025/06/10
2830
Python|Tkinter实现一个简单的GUI界面
Tkinter是python自带的一个可以编程的GUI,能将python代码封装成一个GUI;当然,Tkinter可以更好的为使用者带来视觉上的效果,可以将单调的代码变成一个有趣的GUI界面。
算法与编程之美
2020/05/29
2.5K0
Python|Tkinter实现一个简单的GUI界面
tkinter 实现简单登录窗
import tkinter as tk import tkinter.messagebox import pickle # init main window(login window) window = tk.Tk() window.title('Welcome to Mofan Python') window.geometry('450x300') # welcome image canvas = tk.Canvas(window, width = 500, height = 200) image_
山海散人
2021/03/03
6500
Tkinter学习笔记(一)
学习python的意义在于python提供很多数据分析的包,所以如果不是为了搬砖,那么python就是最好的选择。但是学了那么多总归要给别人展示吧。所以图形界面开发是一个必要的技能。这里不讨论其他的选项,就是为了学python。
写一点笔记
2020/11/02
1.2K0
Tkinter学习笔记(一)
软件测试|超好用超简单的Python GUI库——tkinter(五)
在之前,我们介绍了tkinter的button控件,label控件,今天我们介绍一下entry控件,entry控件我们可以理解为界面的内容输入框,实现GUI界面与用户的信息交互,最典型的场景就是我们在登录时需要输入的账号密码。
霍格沃兹测试开发Muller老师
2023/04/10
1.2K0
tkinter的简单应用
from tkinter import Tk,messagebox,Toplevel import tkinter as tk my_window=Tk() my_window.title("登陆") screen_width,screen_height=my_window.maxsize() width=250 height=200 align_str="%dx%d+%d+%d" % (width,height,(screen_width-width)/2,(screen_height-hei
hankleo
2020/09/17
6580
【图形界面】学生宿舍信息管理系统,简单,模板框架,含完整代码
在本文中,我们将介绍如何使用Python和Tkinter库开发一个简单的学生宿舍信息管理系统。该系统包括添加、删除、修改和查询学生信息的功能,并提供了图形用户界面以便用户操作。
命运之光
2024/03/20
5500
【图形界面】学生宿舍信息管理系统,简单,模板框架,含完整代码
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
本篇文章主要python第三方库Tkinter库的使用,包括输入框(Entry)控件,Spinbox控件,Listbox(列表框)控件和Combobox(复合框)控件它们的常用属性和方法以及具体的示例和相应的效果图。
laity
2025/02/27
1.3K0
图形化界面的开发(GUI)_Tkinter库的使用-4(Entry+Spinbox+Listbox+Combobox)
Get了!用Python制作数据预测集成工具 | 附代码
经过算法比较,发现这里我们选择使用sklearn简单的多元回归进行拟合数据可以达到比较好的效果。
AI科技大本营
2020/08/24
1.7K0
Get了!用Python制作数据预测集成工具 | 附代码
推荐阅读
相关推荐
我的tkinter学习笔记2
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档