这是我们专业课中一个小小的作业吧,备个份在这~~~
(1)创建Excel文件

(2)程序源代码

1 import tkinter
2 import tkinter.filedialog as fdg
3 import turtle as f
4 import xlrd
5
6
7
8 # 创建可视化用户选择界面
9 def User_UI():
10 def open_file():
11 usr_file_pth = fdg.askopenfilename()
12 usr_file.set(usr_file_pth)
13 def paint():
14 path = usr_file.get()
15 workbook = xlrd.open_workbook(path)
16 Data_sheet = workbook.sheets()[0]
17 sheet_name = Data_sheet.name
18 rowNum = Data_sheet.nrows # 行
19 colNum = Data_sheet.ncols # 列
20
21 # 获取所有单元格的内容
22 list_inc = []
23 for i in range(rowNum):
24 rowlist = []
25 for j in range(colNum):
26 rowlist.append(Data_sheet.cell_value(i, j))
27 list_inc.append(rowlist)
28
29 # 根据用户选择筛选出有用的记录
30 usr_cho_p = usr_paint.get()
31 chose_li = []
32 for i in list_inc:
33 for j in i:
34 if usr_cho_p in j:
35 chose_li.append(i)
36 # 判断用户所需数据是否在每行纪录最右边
37 end = []
38 for data in chose_li:
39 if usr_cho_p == data[4]:
40 end.append(data)
41 elif usr_cho_p != data[4]:
42 data[1], data[2] = data[2], data[1]
43 data[3], data[4] = data[4], data[3]
44 end.append(data)
45
46 # 绘图函数
47 # 定义画布以及画笔属性
48 f.hideturtle()
49 f.screensize(800, 700, 'white')
50 point_list = []
51 POINT = {
52 'N1': (-300, 250),
53 'N2': (-100, 0),
54 'N3': (-250, -250),
55 'N4': (150, 300),
56 'N5': (180, 20),
57 'N6': (350, -150),
58 'N7': (150, -120),
59 }
60 for point in end:
61 # 书写点名(红色)
62 f.penup()
63 f.pencolor('red')
64 f.goto(POINT[point[1]])
65 f.pendown()
66 f.write(point[1], font=('黑体', 25))
67 # 显示点
68 f.penup()
69 f.pencolor('black')
70 f.goto(POINT[point[1]])
71 f.pendown()
72 f.write('*', font=('黑体', 15))
73 point_list.append(point[1])
74 # 连接点
75 f.pencolor('blue')
76 f.pensize(3)
77 f.hideturtle()
78 f.speed(2)
79 score = len(point_list)
80 for j in range(score):
81 if j < score - 1:
82 f.penup()
83 f.goto(POINT[point_list[j]])
84 f.pendown()
85 f.goto(POINT[point_list[j+1]])
86 else:
87 f.penup()
88 f.goto(POINT[point_list[score-1]])
89 f.pendown()
90 f.goto(POINT[point_list[0]])
91 f.done()
92
93
94
95 root = tkinter.Tk()
96 root.title('User Chose')
97 root.geometry('380x130')
98 root.resizable(width=False, height=False)
99
100 show_label = tkinter.Label(root,text='请选择xls文件以导入:',font=('黑体',11),fg='#4F4F4F')
101 show_label.place(x=10,y=10)
102 chose_btn = tkinter.Button(root,text='选择文件',font=('黑体',10),bg='orange',bd=2,command=lambda :open_file())
103 chose_btn.place(x=10,y =35)
104 usr_file = tkinter.Variable()
105 file_pth = tkinter.Label(root,textvariable=usr_file,width=43).place(x=80,y=35)
106 show_label = tkinter.Label(root,text='请输入要绘制的图形代号:',font=('黑体',11),fg='#4F4F4F')
107 show_label.place(x=10,y=60)
108 usr_paint = tkinter.Variable()
109 file_pth = tkinter.Entry(root,textvariable=usr_paint,width=6).place(x=200,y=60)
110 start_btn = tkinter.Button(root,text='开始绘图',font=('黑体',10),bg='orange',bd=2,command=lambda :paint())
111 start_btn.place(x=140,y=90)
112 root.mainloop()
113
114
115 User_UI()
来源:https://www.cnblogs.com/skygrass0531/p/12299092.html
