Tkinter 简介
介绍图形用户界面和单位转换。
单位错误
1998年,美国国家航空航天局(NASA)发射了火星气候轨道器,旨在研究火星大气和气候的变化。1999年9月,当轨道器在火星上方执行轨道插入操作时,NASA失去了与它的通信联系。后来发现,一段软件提供的结果使用的是非国际单位制(SI)单位,而接收计算结果的规格说明书和软件期望的是国际单位制单位。由于单位转换错误,轨道器最终撞上了火星,任务提前终止。这是一次代价高昂的单位错误。
Python中的图形用户界面
到目前为止,我们所有的程序都是在脚本编辑器中运行的,所有结果都打印到了控制台。图形用户界面(GUI,发音为“gooey”)是一种更高级的用户与程序交互并查看结果的方式。Python中有多种用于创建GUI的库,例如 PyQT、Tkinter、Wx、Kivy 等。其中 Tkinter 是Python内置的库,因此我们将使用它来创建一个用于转换不同压力单位的GUI。相关文档[1]和使用指南[2]可在资源部分找到。
压力单位
压力定义为单位面积上的力,因此国际单位制(SI)中的基本单位是牛顿每平方米,即帕斯卡(Pa)。美国常用单位是磅力每平方英寸(psi)。我们将使用 Pint——一个Python的单位处理库——来为不同单位赋值并进行单位转换。Pint 的文档见脚注[3]。Pint 的GitHub仓库[4]列出了后续将使用的默认压力单位。
本程序将分为三个阶段实现。第一阶段,你将了解GUI的基本构建方式,此时会硬编码将兆帕(MPa)转换为磅每平方英寸(psi)的逻辑。第二阶段,你将学习如何创建下拉菜单,让用户可以选择任意基础压力单位之间的转换。最后,你将添加自由文本输入框,从而充分发挥 Pint 的全部功能,允许用户在相同量纲的单位之间进行转换,如速度或距离,而不仅限于压力单位。