用Python创建GUI获取日出和日落时间

用Python创建GUI获取日出和日落时间

Python是什么?它有哪些优点?

Python是一种高级编程语言,用于广泛的应用,包括Web开发、科学计算、数据分析和人工智能。它具有简单优美的语法,易于阅读和编写,并提供许多有用的工具和函数。Python的一些优点包括易读性、易用性、灵活性和可移植性。它是一种开源语言,意味着它是免费提供的,任何人都可以修改和分发。Python还有一个庞大而活跃的开发者社区,他们为其发展做出贡献,并为其他用户提供支持和资源。

使用Tkinter的主要优势是什么?

Tkinter是一个用于创建GUI应用程序的Python库。以下是使用Tkinter的主要优势-

  • 它已经包含在Python中– Tkinter已经包含在标准的Python发行版中,这意味着它总是可用且无需安装其他库。
  • 跨平台兼容性– Tkinter适用于所有主要操作系统,包括Windows、macOS和Linux。
  • 易于学习 – Tkinter具有简单直观的API,使得学习和使用它非常容易,特别是对于刚开始进行GUI编程的初学者。
  • 可自定义小部件– Tkinter提供了广泛的可定制小部件,例如按钮、标签、文本框、复选框、单选按钮、列表框等。这些小部件可以根据您的特定应用程序要求进行配置。
  • 易于创建复杂布局 – Tkinter提供了几个几何管理器(pack、grid和place),可以帮助您以灵活的方式在屏幕上排列小部件。
  • 对用户界面有高级控制能力– Tkinter提供了对用户界面的外观和感觉的高级控制,允许您自定义小部件、字体、颜色等的外观。
  • 支持事件驱动编程– Tkinter基于事件驱动编程模型,并设计用于响应用户事件,例如鼠标点击、按钮按下和键盘输入。这使得创建交互式应用程序变得容易。

总体而言,Tkinter是一个多功能且易于使用的GUI 工具包,可以帮助您以最小的努力创建专业外观的桌面应用程序。

先决条件

在我们深入创建GUI的细节之前,您应该具有Python编程的基本了解、面向对象编程(OOP)的概念以及如何使用Tkinter模块。

推荐的设置列表

  • pip install tkinter,astral
  • 预期用户将访问任何独立的IDE,如VS-Code、PyCharm、Atom或Sublime文本。
  • 即使在线的Python编译器也可以使用,例如Kaggle.com,Google Cloud platform或其他任何平台。
  • 使用更新版本的Python。在撰写本文时,我使用的是3.10.9版本。
  • 知道如何使用Jupyter笔记本。
  • 知道虚拟环境的使用和应用会有益但不是必须的。

步骤1:安装

首先,我们需要确保我们的系统中安装了所有必要的库以支持我们的项目。我们将使用Python的Tkinter库来创建GUI,还需要Astral库来获取日落和日出时间。

要安装Tkinter库Astral,可以使用以下命令使用pip −

pip install python-tk
pip install astral

步骤2:导入库

一旦我们安装了库,我们就可以将它们导入Python脚本中。

from tkinter import *
from astral.sun import sun
from astral import LocationInfo
from datetime import datetime

步骤3:创建GUI

现在,我们可以通过定义窗口的大小和标题来开始构建我们的GUI。在这个例子中,我们将创建一个简单的窗口,包括标签和按钮。

# 创建GUI
window = Tk()
window.geometry("500x300")
window.title("日出和日落时间")

label = Label(window, text="")
label.pack()

button = Button(window, text="获取时间", command=get_time)
button.pack()

window.mainloop()

步骤4:添加功能

我们的GUI现在已经设置好了,但是它还没有做任何事情。我们将添加一个名为get_time的函数来获取当前位置的日出和日落时间。

# 添加功能
def get_time():
   city = LocationInfo("New York", "USA")
   s = sun(city.observer, date=datetime.now(), tzinfo=city.timezone)
   sunrise = s['sunrise'].strftime('%H:%M:%S')
   sunset = s['sunset'].strftime('%H:%M:%S')
   label.config(text=f"日出时间: {sunrise}\n日落时间: {sunset}")

在此函数中,我们首先定义我们的位置,本例中为纽约。然后,我们使用astral.sun库的sun函数获取我们位置的日出和日落时间。我们使用strftime格式化时间,最后使用config方法更新我们GUI中的标签。

步骤5:测试应用程序

我们现在可以运行应用程序并进行测试!在终端中键入 python文件名.py或在IDE中运行它来运行脚本。

运行脚本后,GUI窗口将出现。单击“获取时间”按钮,将显示纽约的日出和日落时间。

最终程序,代码

# 导入库
from tkinter import *
from astral.sun import sun
from astral import LocationInfo
from datetime import datetime

# 添加功能
def get_time():
   city = LocationInfo("New York", "USA")
   s = sun(city.observer, date=datetime.now(), tzinfo=city.timezone)
   sunrise = s['sunrise'].strftime('%H:%M:%S')
   sunset = s['sunset'].strftime('%H:%M:%S')
   label.config(text=f"日出时间: {sunrise}\n日落时间: {sunset}")
# 创建GUI界面
window = Tk()
window.geometry("500x300")
window.title("日出日落时间")

label = Label(window, text="")
label.pack()

button = Button(window, text="获取时间", command=get_time)
button.pack()

window.mainloop()

Output

用Python创建GUI获取日出和日落时间

点击按钮后,我们就可以获得时区时间。

用Python创建GUI获取日出和日落时间

此部分显示了所需的输出。

结论

本指南介绍了如何使用Python创建GUI界面来获取日出和日落时间。我们使用tkinter库创建了GUI界面,使用astral库获取了日出和日落时间。我们编写的代码可以进行修改,并用于需要全球日出和日落时间信息的各种应用。

此外,我们还看到了如何使用strftime函数将变量格式化为可读格式以显示它们。通过这些知识,您可以继续修改代码,以获取世界上任何位置的日出和日落时间、将其集成到其他系统中等等。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Python 教程