# -*- coding: utf-8 -*-
# @Project: 机器学习
# @Author: little fly
# @File name: 生平标注
# @Create time: 2020/9/7 21:47
import tkinter.filedialog
import tkinter as tk # 导入tkinter模块
from tkinter import scrolledtext
import tkinter.messagebox
from tkinter import *
import os
import json
import pandas as pd
class Applicant(tk.Tk):
def __init__(self):
super().__init__()
self.createUI()
def createUI(self):
self.title('生平标注')
self.geometry('1100x1200')
self.count = 0
tk.Label(self, text='内容').place(x=50, y=30)
self.content = scrolledtext.ScrolledText(self, width=60, height=20, font=('宋体', 10))
self.content.place(x=50, y=60)
tk.Label(self, text='提取记录').place(x=500, y=30)
self.out_data = scrolledtext.ScrolledText(self, width=60, height=45, font=('宋体', 10))
self.out_data.place(x=500, y=60)
tk.Label(self, text='时间').place(x=50, y=350)
self.time = scrolledtext.ScrolledText(self, width=20, height=2, font=('宋体', 10))
self.time.place(x=50, y=370)
tk.Label(self, text='摘要').place(x=270, y=350)
self.abstract = scrolledtext.ScrolledText(self, width=20, height=2, font=('宋体', 10))
self.abstract.place(x=270, y=370)
tk.Label(self, text='地点').place(x=50, y=440)
self.space = Text(self, width=40, height=1, font=('宋体', 10))
self.space.place(x=90, y=444)
tk.Label(self, text='姓名').place(x=50, y=480)
self.name = scrolledtext.ScrolledText(self, width=20, height=2, font=('宋体', 10))
self.name.place(x=50, y=500)
tk.Label(self, text='真实姓名').place(x=270, y=480)
self.real_name = scrolledtext.ScrolledText(self, width=20, height=2, font=('宋体', 10))
self.real_name.place(x=270, y=500)
tk.Button(self, text='完成一条记录', width=15, height=1, command=self.Add).place(x=50, y=600)
tk.Button(self, text='保存文件', width=15, height=1, command=self.Save).place(x=270, y=600)
def Save(self):
name = self.name.get(1.0, END).strip().replace("\n", "").replace(" ", "")
real_name = self.real_name.get(1.0, END).strip().replace("\n", "").replace(" ", "")
file_name = name + '_' + real_name + '.xlsx'
data_list = json.loads(
'[' + self.out_data.get(1.0, END).strip().replace("\n", "").replace(" ", "") + ']')
print(data_list)
self.name.delete(1.0, END)
self.real_name.delete(1.0, END)
self.out_data.delete(1.0, END)
data_pd = pd.DataFrame(data_list)
data_pd.to_excel(file_name, index=False)
def Add(self):
content = self.content.get(1.0, END).strip().replace("\n", "").replace(" ", "")
time = self.time.get(1.0, END).strip().replace("\n", "").replace(" ", "")
abstract = self.abstract.get(1.0, END).strip().replace("\n", "").replace(" ", "")
space = self.space.get(1.0, END).strip().replace("\n", "").replace(" ", "")
name = self.name.get(1.0, END).strip().replace("\n", "").replace(" ", "")
# real_name = self.real_name.get(1.0, END).strip().replace("\n", "").replace(" ", "")
if not content and not time and not abstract and not space and not name:
tkinter.messagebox.askokcancel(title='提示', message="存在输入框为空!")
else:
dic = {
'time': time,
'space': space,
'abstract': abstract,
'content': content
}
if self.count > 0:
self.out_data.insert(1.0, ',')
self.count += 1
self.time.delete(1.0, END)
self.space.delete(1.0, END)
self.abstract.delete(1.0, END)
self.content.delete(1.0, END)
self.out_data.insert(1.0, json.dumps(dic, ensure_ascii=False, indent=4))
if __name__ == '__main__':
Applicant().mainloop()
tkinter图形化界面
最新推荐文章于 2025-03-19 09:00:00 发布