以下代码用GUI库内容代替argparse库内容,输出替换代码parser = argparse.ArgumentParser(description='村村通道路修建规划') parser.add_argument('--num', type=int, help='村庄数目',required=True) parser.add_argument('--edge', type=int, help='可建公路数目',required=True) parser.add_argument('--village', nargs='*', help='村庄名称',required=True) parser.add_argument('--road', nargs='+', help='村村连同道路信息',required=True) args = parser.parse_args(sys.argv[1:]) if args.num and args.village: if args.num != len(args.village): print(f"村庄数量应为{args.num}个,但是输入了{len(args.village)}个村庄名称") else: print('村庄名称输入完成') else: print("请输入村庄数量和名称") if args.edge and args.road: if args.edge != len(args.road): print(f"村村连同道路应为{args.edge}个,但是输入了{len(args.road)}条道路") else: print('村村道路输入完成') else: print("请输入村村道路") n = args.num e = args.edge vlist = args.village nbedge=[] for road_info in args.road: road_info = road_info.split(',') source = road_info[0] destination = road_info[1] length = int(road_info[2]) nbedge.append((source, destination, length))
时间: 2024-02-05 10:02:43 浏览: 165
你可以使用 Tkinter 等 GUI 库来替换 argparse,下面是一个使用 Tkinter 的例子:
```python
import tkinter as tk
from tkinter import messagebox
class Application(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
def create_widgets(self):
# 村庄数目输入框
self.num_label = tk.Label(self, text="村庄数目")
self.num_label.pack()
self.num_entry = tk.Entry(self)
self.num_entry.pack()
# 可建公路数目输入框
self.edge_label = tk.Label(self, text="可建公路数目")
self.edge_label.pack()
self.edge_entry = tk.Entry(self)
self.edge_entry.pack()
# 村庄名称输入框
self.village_label = tk.Label(self, text="村庄名称")
self.village_label.pack()
self.village_entry = tk.Entry(self)
self.village_entry.pack()
# 村村连同道路信息输入框
self.road_label = tk.Label(self, text="村村连同道路信息")
self.road_label.pack()
self.road_entry = tk.Entry(self)
self.road_entry.pack()
# 提交按钮
self.submit_button = tk.Button(self, text="提交", command=self.submit)
self.submit_button.pack()
def submit(self):
num = self.num_entry.get()
edge = self.edge_entry.get()
village = self.village_entry.get()
road = self.road_entry.get()
if not num or not edge or not village or not road:
messagebox.showerror("Error", "请完整填写表单!")
return
num = int(num)
edge = int(edge)
village = village.split()
road = road.split('\n')
if num != len(village):
messagebox.showerror("Error", f"村庄数量应为{num}个,但是输入了{len(village)}个村庄名称")
return
if edge != len(road):
messagebox.showerror("Error", f"村村连同道路应为{edge}个,但是输入了{len(road)}条道路")
return
nbedge = []
for road_info in road:
road_info = road_info.split(',')
source = road_info[0]
destination = road_info[1]
length = int(road_info[2])
nbedge.append((source, destination, length))
print('村庄名称输入完成')
print('村村道路输入完成')
root = tk.Tk()
app = Application(master=root)
app.mainloop()
```
这个例子使用 Tkinter 创建了一个简单的 GUI 界面,包含了四个输入框和一个提交按钮。当用户点击提交按钮时,程序会获取四个输入框中的内容,并进行检查。如果内容有缺失或不符合要求,会弹出错误提示框。否则,程序会将输入框中的内容解析为 Python 对象,并输出到控制台中。
你可以根据自己的需要,修改这个例子,添加更多的输入框和交互逻辑。
阅读全文