Eingabe abspeichern und in Ein Dokument einfügen.

Fragen zu Tkinter.
Antworten
Senol
User
Beiträge: 7
Registriert: Freitag 20. September 2019, 11:04

Hi,
Ich bin es wieder. Ich hab letztens von Sirius ein Code gesehen (viewtopic.php?f=18&t=45730) es ging ums PW Generieren.
Das fand Ich so interessant das ich es Kopiert hab und versucht habe daraus eine Anwendung zu machen. Wo man ein Eingabefeld hat das man den Grund schreibt und das man dann
Die Info + den PW in ein Dokument abspeichert aaaabbbber Irgendwie will es auf keinen Fall speichern was ich eintippe und Ich rede hier nur vom selber eingeben nicht mal vom PW abspeichern. Ich hoffe ihr versteht es.

Im Quellcode ist es Eingabe1. Ich hab es versucht mit .get() irgendwie auslagern in eine def es geht einfach nicht im Internet finde Ich auch nichts richtiges (glaube ich) vllt versteht ihr mein Problem und könnt mir weiter helfen.
Ich will einfach nur verstehen wie das Funktioniert damit ich es dann selber mal machen kann ^^.

vielen dank für eure Hilfe

Code: Alles auswählen

import tkinter as tk
import random
import string
from tkinter	import filedialog
from functools 	import partial


root = tk.Tk()
root.title("PW Generator")
root.geometry("500x500")

CHARS = string.ascii_lowercase + string.digits

def generate(eingabe, password_str):
	laenge = int(eingabe.get())
	if laenge < 2:
		laenge = 2
	password = ''.join(random.choices(CHARS, k=laenge))
	password_str.set(password)
	
def save_file():
	# x = eingabe1.get()
	f = filedialog.asksaveasfile(mode='w', defaultextension=".txt")
	if f is None:
		return
	f.write("\n")
	f.write("hi")
	f.close()
	
		
def main():
	label = tk.Label(root, text="Der Passwortgenerator", fg="red", font="Helvetica 16 bold italic")
	label.pack()
	
	label1= tk.Label(root, text="Für was Brauchst du PW")
	label1.pack()
	
	eingabe1 = tk.Entry()
	eingabe1.pack()
	
	label2= tk.Label(root, text="PW Länge eingeben:")
	label2.pack()
	
	eingabe = tk.Entry()
	eingabe.insert(0, "")
	eingabe.pack()
	
	passwort_str = tk.StringVar()
	tk.Button(root, text="Erzeugen", command=partial(generate, eingabe, passwort_str)).pack()
	tk.Entry(root, textvariable=passwort_str).pack()
	
	tk.Button(root, text="Speichern", command= save_file).pack()
	root.mainloop()

if __name__ == '__main__':
    main()
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Du übergibst ja auch kein Parameter für eingabe, bzw. die Funktion nimmt auch keine entgegen.

Bei deiner Funktion generate() und dem Aufruf dazu machst du es doch richtig.
Senol
User
Beiträge: 7
Registriert: Freitag 20. September 2019, 11:04

Wie gesagt Ich hab das Kopiert gehabt und Ich verstehe einfach nicht wie das Funktioniert ^^ ...Ich gebe ja was Ein in der Oberfläche in das Feld und das was ich darein schreibe soll er mir abspeichern und dann später in eine .txt datei reinpacken. Also im großen und ganzen geht es um " eingabe1 "
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

Dann versuche zu verstehen, was bei generate gemacht wird und wende es auf save_file an.
Weißt Du, wie man Funktionen definiert und aufruft? Hast Du in der Dokumentation nachgelesen, was partial macht?
Senol
User
Beiträge: 7
Registriert: Freitag 20. September 2019, 11:04

Danke für dein Tipp. Hab es jetzt geschafft . Ich habe einfach viel zu umständlich die ganze Zeit gedacht wie sagt man so schön... " Ich hab den Wald vor Lauter Bäumen nicht gesehen" ^^
Antworten