Fehlermeldung?asdfgh hat geschrieben:Leider hängt es sich immer noch bei Betätigen des Buttons auf. Wie finde ich die Ursache davon?
Tkinter Eingabe
In dem Fall fehlt allerdings der Quelltext in dem das Problem ist, denn im bisher gezeigten sehe ich keine solche Schleife.
Hier der aktuelle Quelltext:
Zum Trennen von GUI und Logik muss ich die Logik-Funktionen außerhalb der Klasse schreiben und in der Klasse aufrufen?
Code: Alles auswählen
# -*- coding: UTF8 -*-
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
ALPHABET = map(chr, [x for x in range(65, 91)])
class Vigenere(object):
def __init__(self):
self.root = tk.Tk()
self.text = tk.Entry(self.root)
self.code = tk.Entry(self.root)
self.button = tk.Button(
self.root, text="Codieren", command=self.button_clicked)
self.ausgabe = tk.Label(self.root, text="Text und Codewort eingeben")
self.text.pack()
self.code.pack()
self.button.pack()
self.ausgabe.pack()
def button_clicked(self):
text = self.text.get()
code = self.code.get()
ergebnis = "".join(self.vigenere_anwenden(text, code))
self.ausgabe.config(text=ergebnis)
def vigenere_anwenden(self, text, code):
return [
self.verschieben(
char_text, self.verschiebezahl_ermitteln(char_code))
for char_text, char_code in zip(text, code)
]
def verschieben(self, buchstabe, verschiebezahl):
neu = chr(ord(buchstabe) + verschiebezahl)
if neu not in ALPHABET:
return chr(ord(neu) - 26)
else:
return neu
def verschiebezahl_ermitteln(self, buchstabe):
return ord(buchstabe) - 65
def run(self):
self.root.mainloop()
if __name__ == '__main__':
vigenere = Vigenere()
vigenere.run()
@asdfgh: Ich sehe da keine Endlosschleife. Also weder im Code, noch hängt da irgendwas wenn ich das Programm ausführe.
Die Verschlüsselung ist allerdings fehlerhaft, da verschwindet Text wenn man Text/Code eingibt der nicht irgendwelchen Bedingungen entspricht.
Die Verschlüsselung ist allerdings fehlerhaft, da verschwindet Text wenn man Text/Code eingibt der nicht irgendwelchen Bedingungen entspricht.