使用Python tkinter 实现日期输入并发送设备名称进行预约
以下是使用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))
root = tk.Tk()
root.title('设备预约')
App(master=root)
root.mainloop()
代码说明:
- 导入必要的库:
tkinter用于创建界面,requests用于发送 HTTP 请求,json用于处理 JSON 数据。 - 创建一个
App类继承tkinter.Frame,用于构建界面。 - 在
create_widgets函数中创建界面元素:日期标签、输入框、确定按钮、设备名称标签、列表框、开始预约按钮。 send_date函数处理用户输入的日期,发送到后端获取设备名称列表并填充到列表框中。start_resv函数获取用户选中的设备名称,发送到后端进行预约。- 最后创建
Tk对象,设置标题,创建App实例并进入消息循环。
注意:
- 请将代码中的
resv_url和startresv_url替换为你的实际后端接口地址。 - 请确保你的后端接口返回的 JSON 格式与示例代码中的一致。
示例代码仅供参考,你可以根据实际需求进行调整和扩展。
原文地址: https://www.cveoy.top/t/topic/mSNF 著作权归作者所有。请勿转载和采集!