首页 > 编程语言 >【python】Python tkinter库实现重量单位转换器的GUI程序

【python】Python tkinter库实现重量单位转换器的GUI程序

时间:2023-10-18 16:03:49浏览次数:46  
标签:tkinter python column Python window grid END e2 row

在这里插入图片描述

前言

这段代码是一个简单的重量单位转换器的 GUI 程序,使用了 Python 的 tkinter 库来创建图形界面。该程序可以将输入的重量从千克转换为克、磅和盎司,并通过三个文本框分别显示转换后的结果。

学到什么?

  1. 使用tkinter库创建一个GUI窗口。tkinter是Python标准库中的一个模块,用于创建图形用户界面(GUI)应用程序。
  2. 了解如何在GUI窗口中添加标签(Label)和输入框(Entry)等控件。
  3. 学习如何使用StringVar()创建一个字符串变量,并将其与输入框关联,以便获取输入框中的值。
  4. 使用grid()方法在窗口中设置控件的位置和布局。
  5. 实现一个函数from_kg(),用于将输入框中的重量(以千克为单位)转换为克、磅和盎司,并在相应的文本框中显示结果。
  6. 使用Text控件来显示文本内容。
  7. 创建一个按钮(Button),并将其与函数from_kg()关联,实现点击按钮后执行相应的函数操作。
  8. 通过调用mainloop()方法来启动GUI窗口的事件循环,使窗口能够响应用户的操作。

导入模块和库

在这里插入图片描述

from tkinter import *
  • 导入了 tkinter 库,用于创建图形用户界面 (GUI)。

创建一个GUI窗口

window = Tk()
  • 创建了一个名为 window 的 GUI 窗口对象。

定义函数 from_kg()

def from_kg():
    gram = float(e2_value.get())*1000
    pound = float(e2_value.get())*2.20462
    ounce = float(e2_value.get())*35.274
    t1.delete("1.0", END)
    t1.insert(END, gram)
    t2.delete("1.0", END)
    t2.insert(END, pound)
    t3.delete("1.0", END)
    t3.insert(END, ounce)
  • 这是一个用于将输入的重量从千克转换为克、磅和盎司的函数。
  • 在函数内部,获取了输入框 e2 中的值,并将其转换为浮点数。
  • 根据转换公式进行计算,分别得到克、磅和盎司的值。
  • 使用 t1.delete("1.0", END) 清空文本框 t1 中的内容,然后使用 t1.insert(END, gram) 将计算结果插入到文本框中。
  • 类似地,清空并插入磅和盎司的计算结果到相应的文本框 t2t3 中。

创建标签、输入框、文本框和按钮

e1 = Label(window, text="输入重量(单位KG)")
e2_value = StringVar()
e2 = Entry(window, textvariable=e2_value)
e3 = Label(window, text="Gram")
e4 = Label(window, text="Pound")
e5 = Label(window, text="Ounce")

t1 = Text(window, height=5, width=30)
t2 = Text(window, height=5, width=30)
t3 = Text(window, height=5, width=30)

b1 = Button(window, text="Convert", command=from_kg)
  • 创建了一系列标签 (Label) 对象,分别显示文字内容。
  • 创建了一个输入框 (Entry) 对象,用于接收用户输入的重量值。
  • 创建了三个文本框 (Text) 对象,用于显示转换后的重量值。
  • 创建了一个按钮 (Button) 对象,点击该按钮会调用函数 from_kg() 进行转换操作。

设置组件的布局

e1.grid(row=0, column=0)
e2.grid(row=0, column=1)
e3.grid(row=1, column=0)
e4.grid(row=1, column=1)
e5.grid(row=1, column=2)
t1.grid(row=2, column=0)
t2.grid(row=2, column=1)
t3.grid(row=2, column=2)
b1.grid(row=0, column=2)
  • 使用 grid() 方法将各个组件按照指定的行和列进行布局。

运行窗口循环

window.mainloop()
  • 进入主事件循环,使窗口保持可见并响应用户操作。

完整代码

from tkinter import *

# 创建一个GUI窗口
window = Tk()


def from_kg():
    gram = float(e2_value.get())*1000
    pound = float(e2_value.get())*2.20462
    ounce = float(e2_value.get())*35.274
    t1.delete("1.0", END)
    t1.insert(END, gram)
    t2.delete("1.0", END)
    t2.insert(END, pound)
    t3.delete("1.0", END)
    t3.insert(END, ounce)


e1 = Label(window, text="输入重量(单位KG)")
e2_value = StringVar()
e2 = Entry(window, textvariable=e2_value)
e3 = Label(window, text="Gram")
e4 = Label(window, text="Pound")
e5 = Label(window, text="Ounce")

t1 = Text(window, height=5, width=30)
t2 = Text(window, height=5, width=30)
t3 = Text(window, height=5, width=30)

b1 = Button(window, text="Convert", command=from_kg)

e1.grid(row=0, column=0)
e2.grid(row=0, column=1)
e3.grid(row=1, column=0)
e4.grid(row=1, column=1)
e5.grid(row=1, column=2)
t1.grid(row=2, column=0)
t2.grid(row=2, column=1)
t3.grid(row=2, column=2)
b1.grid(row=0, column=2)

window.mainloop()

运行效果

在这里插入图片描述

结束语

以上就是这个重量单位转换器的代码及其相应的讲解说明。通过这个示例,我们可以学习到如何使用 tkinter 库来创建简单的图形用户界面,并实现一些基本的功能,如输入框、标签、文本框和按钮等。

标签:tkinter,python,column,Python,window,grid,END,e2,row
From: https://blog.51cto.com/u_14522592/7918940

相关文章

  • 【Python】Python 实现猜单词游戏——挑战你的智力和运气!
    前言大家好!欢迎来到我们精心准备的文字游戏世界。今天,我将向大家介绍一款有趣而又考验智力的游戏——猜单词游戏。在游戏中,你将面临一个神秘的单词,你需要凭借自己的智慧和运气来猜测这个单词是什么。每猜错一次,你将失去一条生命线,当生命线用尽时,你将面临失败。但只要你成功猜对了......
  • ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?
    CentOS7pyenv安装Python3.10.13报错yuminstall-yopenssl-developenssl11-developenssl11-libCPPFLAGS="-I/usr/include/openssl11"LDFLAGS="-L/usr/lib64/openssl11-lssl-lcrypto"pyenvinstall-v3.10.13[root@Chatglm2-6B~]#pyenvversi......
  • Python Traceback:异常信息定位
    一、traceback模块简介traceback模块是Python标准库中的一个模块,提供了一些函数和类,用于获取和处理异常的跟踪信息。它可以帮助我们定位异常信息所在的代码位置,从而更好地调试和修复程序。 二、获取异常跟踪信息1.traceback.format_exc()函数在异常处理中,我们经常需要获取......
  • [914] In Python's datetime library, you can format dates using the strftime() me
    InPython'sdatetimelibrary,youcanformatdatesusingthestrftime()method.Thismethodallowsyoutocreateaformattedstringrepresentationofadatetimeobject,specifyingtheformatyouwant.Here'showyoucanformatadateusingstrft......
  • dhcpd.leases的Python解析程序
    #!/usr/local/bin/python3importdatetime,bisectdefparse_timestamp(raw_str):tokens=raw_str.split()iflen(tokens)==1:iftokens[0].lower()=='never':return'never';......
  • Python3,3分钟,带你了解PyTorch,原来科学计算库也不是很难嘛。
    1、引言小屌丝:鱼哥,最近忙啥嘞?小鱼:啥也没干。小屌丝:确定没干??小鱼:…这话到你嘴里,咋就变为了。小屌丝:也没有啊,我就是确认下,你干没干。小鱼:…能干啥,你想干啥?小屌丝:我想请教你个问题。小鱼:正儿八经的问题,是不?小屌丝:你就看我今天这身穿的,还能不正经?小鱼:穿新鞋走老路小屌丝:此话咋......
  • Python3, 33行代码搞了一个聊天机器人, 这下再也不怕没人说话了。
    Python制作聊天机器人1、引言2、实战2.1准备2.2介绍2.2.1NLTK2.2.2ChatterBot2.3安装2.4示例2.4.1创建聊天机器人2.4.2与用户交互3、总结1、引言小屌丝:鱼哥,看这段代码fromchatterbotimportChatBot#创建聊天机器人chatbot=ChatBot('MyBot')#加载语料库with......
  • Python3,6行代码,搞定网络测速神器,我直接卸载某60测速器。
    6行代码搞定网络测速器1、引言2、代码实战2.1介绍2.1.1定义2.1.2常用方法2.1.3功能2.2安装2.3示例2.3.1测试上传下载速度2.3.2测试延迟2.3.3自定义服务器测试2.3.4多连接测试2.3.5实战3、总结1、引言小屌丝:鱼哥,你知道speedtest这个库吗?小鱼:嗯,知道一点点,咋了?小屌丝:那......
  • Python保留字有哪些?分为几类?
    保留字也称为关键字,这些保留字都被赋予了特殊含义,不能把保留字作为函数、模块、变量、类和其他对象的名称来使用。那么Python保留字有哪些?分为几类?以下是具体内容介绍。Python语言保留字是指在Python编程语言中,被保留不可用于变量名或函数名的标识符。这些保留字具有特定......
  • 调用Python的openpyxl包对Excel表格进行美化
    Python中运用openpyxl包对Excel表格进行美化,包括字体样式调整、单元格对齐方式调整、单元格边框调整、单元格背景颜色调整、行高和列宽调整。使用的Python中openpyxl包的版本为3.0.5先看实际美化前后的效果对比详细的开发代码如下,代码当中对关键信息进行了说明。复制代码......