У меня есть 3 записи. В верхних двух записях вы вводите целое число, а третье подводит итог. Итак, как я могу сохранить все 3 входа и снова назначить их в соответствующие записи?
Я создал кнопки, чтобы удалить все входы [Новый], открыть файл [Открыть], сохранить [Сохранить], [Сохранить как], и на сумму [сумма]
Я пытался изменить такие функции, как file_open или file_save, получая нужный мне результат, но, к сожалению, он не работает.
import math
import tkinter as tk
from tkinter import ttk
from tkinter import filedialog
def main():
root = tk.Tk()
app = Bauleitung(root)
root.mainloop()
class Bauleitung:
def __init__(self, master):
self.master = master
self.master.geometry('200x200')
self.frame = tk.Frame(self.master)
self.frame.pack()
self.prozent1 = tk.StringVar()
self.prozent2 = tk.StringVar()
self.summe = tk.StringVar()
self.entProzent1 = tk.Entry(self.frame, width=5, relief='solid', textvariable = self.prozent1)
self.entProzent1.grid(row=1, column=1)
self.entProzent2 = tk.Entry(self.frame, width=5, relief='solid', textvariable = self.prozent2)
self.entProzent2.grid(row=2, column=1)
self.entProzent3 = tk.Entry(self.frame, width=5, relief='solid', textvariable = self.summe)
self.entProzent3.grid(row=3, column=1)
self.btnNew = ttk.Button(self.frame, text='New', command=self.file_new)
self.btnNew.grid(sticky='S')
self.btnOpen = ttk.Button(self.frame, text='Open', command=self.file_open)
self.btnOpen.grid( sticky='S')
self.btnSave = ttk.Button(self.frame, text='Save', command=self.file_save)
self.btnSave.grid(sticky='S')
self.btnSaveAs = ttk.Button(self.frame, text='Save As', command=self.file_save_as)
self.btnSaveAs.grid(sticky='S')
self.btnSum = ttk.Button(self.frame, text='Sum', command=self.sum_up)
self.btnSum.grid(sticky='S')
def sum_up(self):
the_sum = int(self.entProzent1.get()) + int(self.entProzent2.get())
return self.summe.set(the_sum)
def file_new(self):
global filename
self.entProzent1.delete('0', 'end')
filename = ''
self.entProzent2.delete('0', 'end')
filename = ''
self.entProzent3.delete('0', 'end')
filename = ''
def file_open(self):
global filename
filename = filedialog.askopenfile(mode='r+')
if filename is not None:
t = filename.read()
self.entProzent1.delete('0', 'end')
self.entProzent1.insert('0', t)
self.entProzent1.focus()
z = filename.read()
self.entProzent2.delete('0', 'end')
self.entProzent2.insert('0', z)
self.entProzent2.focus()
l = filename.read()
self.entProzent3.delete('0', 'end')
self.entProzent3.insert('0', l)
self.entProzent3.focus()
def file_save(self):
global filename
if filename == '':
filename = filedialog.asksaveasfile(mode='w')
if filename is not None:
data1 = self.entProzent1.get()
filename.write(data1)
data2 = self.entProzent2.get()
filename.write(data2)
data3 = self.entProzent3.get()
filename.write(data3)
def file_save_as(self):
global filename
filename = filedialog.asksaveasfile(mode='w')
self.file_save()
if __name__ == '__main__':
main()