Die Idee dahinter ist, dass ich ein Programm mit leeren Text Feldern habe, wo ich Text hinein schreibe. Dann möchte ich per Knopfdruck den Text automatisch zwischen speichern/als Entwurf speichern (in eine Text Datei). Wenn ich nun das Programm schließe und erneut öffne, möchte ich automatisch per Knopfdruck den Text vom letzten Mal in die Eingabefelder reinschreiben lassen/reinladen lassen.
PS: am besten wäre natürlich noch die Option, Dass der Text nicht mehr automatisch in eine festgelegte Datei gespeichert wird, sondern dass man selber über einen („Speichern unter“ Dialog) selbst entscheiden kann, wo und in welche Datei der Text gespeichert werden soll.
Bisher habe ich das Programm soweit gebracht, dass ich den Text im Eingabefeld automatisch in einen Word-Datei speichern lasse. Es gibt Momente da möchte ich dann aber vielleicht einfach schnell das Programm schließen können, um dann beim wieder öffnen an der gleichen Stelle weiterzuschreiben.
Könnt ihr mir bitte zeigen, wie der komplette Code aussehen muss, damit das Programm die eingegebenen Texte in Textfeld 1 und Textfeld 2 automatisch als Entwurf speichert? Also wenn ich auf "Entwurf speichern" drücke sollen die eingegebenen Texte in eine Text oder Word Datei gespeichert werden und wenn ich auf "Entwurf laden" drücke, kann ich den Text da weiterschreiben, wo ich zuletzt aufgehört hatte.
Hier ist der bisherige Code:
Code: Alles auswählen
from pathlib import Path
import PySimpleGUI as sg
# this one long import has the effect of making the code more compact as there is no 'sg.' prefix required for Elements
from PySimpleGUI import InputCombo, Combo, Multiline, ML, MLine, Checkbox, CB, Check, Button, B, Btn, ButtonMenu, Canvas, Column, Col, Combo, Frame, Graph, Image, InputText, Input, In, Listbox, LBox, Menu, Multiline, ML, MLine, OptionMenu, Output, Pane, ProgressBar, Radio, Slider, Spin, StatusBar, Tab, TabGroup, Table, Text, Txt, T, Tree, TreeData, VerticalSeparator, Window, Sizer
from docxtpl import DocxTemplate
document_path = Path(__file__).parent / "my_text_file.docx"
doc = DocxTemplate(document_path)
col1 = Column([[Frame('Text Field 1:', [[Column([[Multiline( key='text1', size=(15,20)),]],size=(150,400))]])]], pad=(0,0))
col2 = Column([[Frame('Text Field 2:', [[Column([[Multiline( key='text2', size=(15,20)),]],size=(150,400))]])]], pad=(0,0))
layout = [ [col1, col2 ],
[sg.Button("Save Draft"), sg.Button("Load Draft")],
[sg.Button("Export Text to File"), sg.Exit()],
]
window = sg.Window("Text Editor", layout, element_justification="right")
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == "Exit":
break
if event == "Export Text to File":
# Render the template, save new word document & inform user
doc.render(values)
output_path = Path(__file__).parent / "my_text_file2.docx"
doc.save(output_path)
sg.popup("File Saved!", f"Datei Speicherort: {output_path}")
window.close()