以下是用Python的tkinter实现该功能的示例代码:

import tkinter as tk
import requests
import json

class App(tk.Frame):
    def __init__(self, master=None):
        super().__init__(master)
        self.master = master
        self.pack()
        self.create_widgets()

    def create_widgets(self):
        self.date_label = tk.Label(self, text='请选择日期:')
        self.date_label.pack(side='left')

        self.date_entry = tk.Entry(self)
        self.date_entry.pack(side='left')

        self.ok_button = tk.Button(self, text='确定', command=self.send_date)
        self.ok_button.pack(side='left')

        self.devname_label = tk.Label(self, text='可选设备:')
        self.devname_label.pack()

        self.devname_listbox = tk.Listbox(self, selectmode='extended')
        self.devname_listbox.pack()

        self.start_button = tk.Button(self, text='开始预约', command=self.start_resv)
        self.start_button.pack()

    def send_date(self):
        date = self.date_entry.get()
        resv_url = 'http://example.com/resv'
        resv_data = {
            'date': date
        }
        res = requests.post(resv_url, data=json.dumps(resv_data))
        res_json = res.json()
        devnames = [dev['devName'] for dev in res_json['data']]
        for devname in devnames:
            self.devname_listbox.insert('end', devname)

    def start_resv(self):
        selected_indices = self.devname_listbox.curselection()
        selected_devnames = [self.devname_listbox.get(i) for i in selected_indices]
        startresv_url = 'http://example.com/startresv'
        startresv_data = {
            'devnames': selected_devnames
        }
        res = requests.post(startresv_url, data=json.dumps(startresv_data))
        # 处理 startresv() 函数的响应

root = tk.Tk()
root.title('预约系统')
App(root)
root.mainloop()

代码说明:

  1. 导入必要的库: tkinter 用于创建窗口界面,requests 用于发送HTTP请求,json 用于处理JSON数据。
  2. 创建应用程序类: App 类继承自 tk.Frame,并定义了窗口的各个组件和功能。
  3. 创建窗口组件:
    • date_label:日期标签
    • date_entry:日期输入框
    • ok_button:确定按钮,点击后发送日期到resv()函数
    • devname_label:设备名称标签
    • devname_listbox:设备名称列表框,显示从resv()函数返回的设备名称
    • start_button:开始预约按钮,点击后将选中的设备名称发送到startresv()函数
  4. send_date 函数:
    • 获取用户输入的日期。
    • 发送日期到 resv_url,使用requests.post()发送POST请求。
    • 解析返回的JSON数据,并将设备名称添加到 devname_listbox 列表框中。
  5. start_resv 函数:
    • 获取用户选择的设备名称。
    • 发送选择的设备名称到 startresv_url,使用requests.post()发送POST请求。
  6. 运行程序:
    • 创建 tk.Tk() 实例,设置窗口标题。
    • 创建 App 实例,并启动窗口事件循环 root.mainloop()

请注意:

  • 代码中 resv_urlstartresv_url 需要替换成实际的API地址。
  • startresv() 函数需要根据实际情况编写代码处理预约操作。
  • 这只是一个示例代码,实际应用中可能需要根据具体需求进行修改。
使用Python的Tkinter实现日期输入和设备选择预约功能

原文地址: https://www.cveoy.top/t/topic/mSNo 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录