сохраните входные данные в нескольких записях в виде файла, откройте его и снова назначьте их тем же записям - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...