📜  使用Python构建一个 GUI 应用程序以获取两个地方之间的距离(1)

📅  最后修改于: 2023-12-03 15:36:36.761000             🧑  作者: Mango

使用Python构建GUI应用程序以获取两个地方之间的距离

简介

本项目旨在使用Python构建一个GUI应用程序,帮助用户获取两个地方之间的距离。用户可以输入起点和终点的经纬度坐标,程序会返回两点之间的距离,单位为公里。

实现步骤
  1. 构建GUI界面,包括两个文本框用于输入经纬度坐标和一个按钮用于触发计算距离的操作。
  2. 使用Python标准库中的geopy模块来计算两点之间的距离。
  3. 在按钮的 click 事件中,获取用户输入的经纬度坐标并调用geopy模块来计算距离,并在界面上显示距离。
代码实现
界面设计
import tkinter as tk

class DistanceCalculator:
    def __init__(self, master):
        self.master = master
        master.title("Distance Calculator")

        self.label_start = tk.Label(master, text="起点坐标:")
        self.label_start.grid(row=0, column=0)

        self.entry_start = tk.Entry(master)
        self.entry_start.grid(row=0, column=1)

        self.label_end = tk.Label(master, text="终点坐标:")
        self.label_end.grid(row=1, column=0)

        self.entry_end = tk.Entry(master)
        self.entry_end.grid(row=1, column=1)

        self.button_calculate = tk.Button(master, text="计算距离", command=self.calculate_distance)
        self.button_calculate.grid(row=2, column=1)

        self.label_result = tk.Label(master, text="")
        self.label_result.grid(row=3, column=1)

    def calculate_distance(self):
        start = self.entry_start.get()
        end = self.entry_end.get()
        distance = self.get_distance(start, end)
        self.label_result.config(text=f"两点之间的距离为{distance}公里。")

    def get_distance(self, start, end):
        from geopy.distance import geodesic
        start = tuple(map(float, start.split(",")))
        end = tuple(map(float, end.split(",")))
        return round(geodesic(start, end).km, 2)

root = tk.Tk()
app = DistanceCalculator(root)
root.mainloop()
说明

该程序使用 tkinter 模块创建了一个窗口,在窗口中包括两个文本框用于输入经纬度坐标和一个按钮用于触发计算距离的操作。

用户在文本框中输入经纬度坐标(例如:39.9042° N, 116.4074° E),然后点击 "计算距离" 按钮,程序会计算出两点之间的距离,并在界面上显示距离,单位为公里。

该程序使用 Python 标准库中的 geopy 模块来计算两点之间的距离。在按钮的 click 事件中,通过调用 get_distance 函数来计算距离,然后在界面上显示距离。

运行结果

运行结果