Kleine Hilfe zu erstem GUI
Hm ok, dann als eigenständige Funktion. Aber wie kann ich das dann miteinander verknüpfen, also dass die Entry's als Klartext bzw. Schluesseltext angesehen werden?
Ja Entry1 soll Klartext bzw. Geheimtext werden
Und Entry 2 der Schluesseltext
Liebe Grüße Muh
Ja Entry1 soll Klartext bzw. Geheimtext werden
Und Entry 2 der Schluesseltext
Liebe Grüße Muh
....... Ok. Du kannst dann die Funktionen:
und
von
in Abhängigkeit von 'art' aufrufen. Verstehst du was ich meine?
Gruss wuf
Code: Alles auswählen
def verschluesselung(klartext,schluesseltext):
Code: Alles auswählen
def entschluesselung(geheimtext,schluesseltext):
Code: Alles auswählen
def begr():
Gruss wuf
Take it easy Mates!
Nein, tut mir Leid, komme nicht ganz mit. Ich dachte das hier ist in Abhängigkeit von "def begr():"
Also eigentlich muss ich dem Programm ja nur sagen, dass wenn der Radiobutton "Verschlüsseln" ausgewählt ist, dass auch "verschluesselung" ausgeführt werden soll. Und das hab ich doch mit obigem Befehl oder nicht?
Was dann noch fehlt ist, dass das Programm als Geheimtext/Klartext den oben eingegebenen Text verwendet und als Schluesseltext den oben eingegebenen Code Genau das ist ja das was ich nicht kann
Liebe Grüße Muh
PS: Danke nochmal ,dass du dir so viel Mühe gibst mir weiterzuhelfen
Code: Alles auswählen
def begr():
art=s.get()
name=t.get()
if art == 1:
def verschluesselung(klartext,schluesseltext):
geheimtext=''
n=len(klartext)
k=len(schluesseltext)
while k<n:
schluesseltext=schluesseltext+schluesseltext
k=len(schluesseltext)
for z in range(n):
code1=ord(klartext[z])-96
code2=ord(schluesseltext[z])-96
code3=code1+code2
if code3>26:
code3=code3-26
zeichen=chr(code3+96)
geheimtext=geheimtext+zeichen
print geheimtext
else:
def entschluesselung(geheimtext,schluesseltext):
klartext=''
n=len(geheimtext)
k=len(schluesseltext)
while k<n:
schluesseltext=schluesseltext+schluesseltext
k=len(schluesseltext)
for z in range(n):
code1=ord(geheimtext[z])-96
code2=ord(schluesseltext[z])-96
code3=code1-code2
if code3<1:
code3=code3+26
code3=code3+96
zeichen=chr(code3)
klartext=klartext+zeichen
print klartext
Was dann noch fehlt ist, dass das Programm als Geheimtext/Klartext den oben eingegebenen Text verwendet und als Schluesseltext den oben eingegebenen Code Genau das ist ja das was ich nicht kann
Liebe Grüße Muh
PS: Danke nochmal ,dass du dir so viel Mühe gibst mir weiterzuhelfen
Hallo Muh-Kuh
Ich würde die folgenden Konstanten:
noch ergänzen mit:
Dann würde ich folgende Funktion noch wie folgt modifizieren:
Kannst du dies einmal durchführen
Gruss wuf
Ich würde die folgenden Konstanten:
Code: Alles auswählen
TEXT_TITLE = 'Programm zum Ver- und Entschlüsseln'
TEXT_LABEL1 = 'Geben Sie Ihren Text ein:'
TEXT_LABEL2 = 'Geben Sie Ihr Codewort ein:'
Code: Alles auswählen
MODE_ENCODE = 1
MODE_DECODE = 2
Code: Alles auswählen
def begr():
art = s.get()
entry1 = t.get()
entry2 = t2.get()
# print 'For debuging only' ,entry1, entry2, art
# print 'For debuging only', list(entry1), list(entry2)
if art == MODE_ENCODE:
verschluesselung(entry1, entry2)
if art == MODE_DECODE:
entschluesselung(entry1, entry2)
Gruss wuf
Take it easy Mates!
Ok, das ergibt Sinn
Aber warum funktioniert es nicht?
Es wird einfach keine Verschlüsselung angezeigt in dem label3 -.-
Ich versteh nicht, wo der Fehler ist. Im IDLE wird ja die richtige Lösung angezeigt oO
Hier nochmal das komplette Programm:
Liebe Grüße Muh
Aber warum funktioniert es nicht?
Es wird einfach keine Verschlüsselung angezeigt in dem label3 -.-
Ich versteh nicht, wo der Fehler ist. Im IDLE wird ja die richtige Lösung angezeigt oO
Hier nochmal das komplette Programm:
Code: Alles auswählen
# -*- coding: cp1252 -*-
import Tkinter as tk
TEXT_TITLE = 'Programm zum Ver- und Entschlüsseln'
TEXT_LABEL1 = 'Geben Sie Ihren Text ein:'
TEXT_LABEL2 = 'Geben Sie Ihr Codewort ein:'
MODE_ENCODE = 1
MODE_DECODE = 2
laenge = 500
def begr():
art = s.get()
entry1 = t.get()
entry2 = t2.get()
# print 'For debuging only' ,entry1, entry2, art
# print 'For debuging only', list(entry1), list(entry2)
if art == MODE_ENCODE:
verschluesselung(entry1, entry2)
if art == MODE_DECODE:
entschluesselung(entry1, entry2)
def verschluesselung(klartext,schluesseltext):
geheimtext=''
n=len(klartext)
k=len(schluesseltext)
while k<n:
schluesseltext=schluesseltext+schluesseltext
k=len(schluesseltext)
for z in range(n):
code1=ord(klartext[z])-96
code2=ord(schluesseltext[z])-96
code3=code1+code2
if code3>26:
code3=code3-26
zeichen=chr(code3+96)
geheimtext=geheimtext+zeichen
print geheimtext
def entschluesselung(geheimtext,schluesseltext):
klartext=''
n=len(geheimtext)
k=len(schluesseltext)
while k<n:
schluesseltext=schluesseltext+schluesseltext
k=len(schluesseltext)
for z in range(n):
code1=ord(geheimtext[z])-96
code2=ord(schluesseltext[z])-96
code3=code1-code2
if code3<1:
code3=code3+26
code3=code3+96
zeichen=chr(code3)
klartext=klartext+zeichen
print klartext
root = tk.Tk()
root.title(TEXT_TITLE)
s = tk.IntVar()
t = tk.StringVar()
t2 = tk.StringVar()
canvas = tk.Canvas(root, height=laenge, width=laenge*1.4, bd=2,
relief='raised')
canvas.pack()
# Erstes Eingabefeld
label1 = tk.Label(canvas, text=TEXT_LABEL1)
label1.place(relx=0.05, rely=0.075, anchor='w')
entry1 = tk.Entry(canvas, width=25, textvariable=t)
entry1.place(relx=0.05, rely=0.15, anchor='w')
# Zweites Eingabefeld
label2 = tk.Label(canvas, text=TEXT_LABEL2)
label2.place(relx=0.45, rely=0.075, anchor='w')
entry2 = tk.Entry(canvas, width=25, textvariable=t2)
entry2.place(relx=0.45, rely=0.15, anchor='w')
# Auswahlmöglichkeit
radiobutton1 = tk.Radiobutton(canvas, text='Verschlüsseln', value=1,
variable=s)
radiobutton2 = tk.Radiobutton(canvas, text='Entschlüsseln', value=2,
variable=s)
radiobutton2.select()
radiobutton1.place(relx=0.05, rely=0.35, anchor='w')
radiobutton2.place(relx=0.05, rely=0.42, anchor='w')
# Ausgabefeld
label3 = tk.Label(canvas, width=25, bg='white')
label3.place(relx=0.45, rely=0.35, anchor='w')
# Knopf ^^
button1 = tk.Button(canvas, text='Übersetzen', command=begr)
button1.place(relx=0.5, rely=0.65, anchor='s')
root.mainloop()
...... Sieht nicht schlecht aus! Ich würde das Einrücken in den Funktionen:
und
auf 4 Zeichen reduzieren wie in Funktion:
Ich würde die folgenden Steuervariablen:
mit
ergänzen.
label3 wie folgt modifizieren:
Das Label-3 muss noch eine weisse Vordergrundfarbe haben um den Geheimtext sichtbar zu machen.
Gruss wuf
Code: Alles auswählen
def verschluesselung(klartext,schluesseltext):
Code: Alles auswählen
def entschluesselung(geheimtext,schluesseltext):
Code: Alles auswählen
def begr():
Code: Alles auswählen
s = tk.IntVar()
t = tk.StringVar()
t2 = tk.StringVar()
Code: Alles auswählen
lb3 = tk.StringVar()
label3 wie folgt modifizieren:
Code: Alles auswählen
# Ausgabefeld
label3 = tk.Label(canvas, width=25, bg='black', fg='white', textvariable=lb3)
label3.place(relx=0.45, rely=0.35, anchor='w')
Gruss wuf
Take it easy Mates!
@Muh-Kuh: Du zeigst hier echt *Null* Eigenleistung. Kopierst einfach nur ohne Verständnis Code von anderen Leuten und hoffst anscheinend das Du die Lösung schon irgendwann vorgesetzt bekommst, wenn Du nur Lange genug am Ball bleibst. Gratulation -- scheint aufzugehen der Plan.
Ja warum funktioniert der Code denn nur nicht. Wo genau denkst Du denn sollte der Ver- oder Entschlüsselte Text in `label3` geraten? Welche Zeile im Quelltext macht das wohl? Und warum denkst Du das sie das macht? Da wäre ich ja echt mal auf eine Erklärung gespannt…
Ja warum funktioniert der Code denn nur nicht. Wo genau denkst Du denn sollte der Ver- oder Entschlüsselte Text in `label3` geraten? Welche Zeile im Quelltext macht das wohl? Und warum denkst Du das sie das macht? Da wäre ich ja echt mal auf eine Erklärung gespannt…
Irgendwie wusste ich das so etwas kommt...
Also BlackJack, mein Problem ist das unser Lehrer rein gar nichts erklären kann, zumindest nicht für Schüler verständlich (ich merke ja das meine ganze Klasse leider nichts kapiert).
Da ich leider ein totaler Neuling in dieser Programmiersprache bin (generell in Programmiersprachen, nur ein bisschen Html kann ich, aber das bringt ja nix) hoffte ich hier auf Hilfe, die einfach und begründet ist.
Deswegen muss ich wuf nochmals danken, dann auch wenn du sagst ich kopiere hier nur alles, was auch so gesehen stimmt, verstehe ich jetzt wenigstens die einzelnen Zeilen. Alleine wuf's erster Post, wo er mir eine vereinfachte Form meines Programms lieferte haben mir sehr geholfen, denn vorher war alles unübersichtlich und ich habe nicht mal die Hälfte aller Zeilen verstanden.
Zu deiner Frage: So wie ich das sehe, liegt das Problem darin, dass mein Verschluesselungs- und mein Entschluesselungsprogramm momentan das Produkt einfach nur "printen" in die Module Console. Ich würde jetzt mal behaupten, dass ich dort noch einen Befehl geben sollte ,dass das Endprodukt, also "klartext" oder "geheimtext", in label3 angezeigt wird. Stimmt das so?
Liebe Grüße Muh
Also BlackJack, mein Problem ist das unser Lehrer rein gar nichts erklären kann, zumindest nicht für Schüler verständlich (ich merke ja das meine ganze Klasse leider nichts kapiert).
Da ich leider ein totaler Neuling in dieser Programmiersprache bin (generell in Programmiersprachen, nur ein bisschen Html kann ich, aber das bringt ja nix) hoffte ich hier auf Hilfe, die einfach und begründet ist.
Deswegen muss ich wuf nochmals danken, dann auch wenn du sagst ich kopiere hier nur alles, was auch so gesehen stimmt, verstehe ich jetzt wenigstens die einzelnen Zeilen. Alleine wuf's erster Post, wo er mir eine vereinfachte Form meines Programms lieferte haben mir sehr geholfen, denn vorher war alles unübersichtlich und ich habe nicht mal die Hälfte aller Zeilen verstanden.
Zu deiner Frage: So wie ich das sehe, liegt das Problem darin, dass mein Verschluesselungs- und mein Entschluesselungsprogramm momentan das Produkt einfach nur "printen" in die Module Console. Ich würde jetzt mal behaupten, dass ich dort noch einen Befehl geben sollte ,dass das Endprodukt, also "klartext" oder "geheimtext", in label3 angezeigt wird. Stimmt das so?
Liebe Grüße Muh
.......Das ist korrekt Muh-Kuh!
Am Ende der Funktion:
muss nach dem print-Befehl noch folgendes ergänzt werden:
Am Ende der Funktion:
muss nach dem print-Befehl noch folgendes ergänzt werden:
Dann können wir ein Testversuch gestartet werden
Gruss wuf
Am Ende der Funktion:
Code: Alles auswählen
def verschluesselung(klartext,schluesseltext):
Code: Alles auswählen
lb3.set(geheimtext)
Code: Alles auswählen
def entschluesselung(geheimtext,schluesseltext):
Code: Alles auswählen
lb3.set(klartext)
Gruss wuf
Take it easy Mates!
Hallo Muh-Kuh
Mein Test ergibt folgendes:
N.B. Bei der Übergabe eines leeren Strings '' (leeres Eingabefeld-2) als Schlüsseltext an die Funktionen 'verschluesselung' bzw. 'entschluesselung' hängt sich das Programm auf. Dies muss noch verhindert werden.
Gruss wuf Gute Nacht
Mein Test ergibt folgendes:
Code: Alles auswählen
Modus: Verschlüsseln
Eingabe-1: Hallo
Schlüssel: abcde
Geheimtext: Icopt
Code: Alles auswählen
Modus: Entschlüsseln
Eingabe: Icopt
Schlüssel: abcde
Klartext: ballo
Gruss wuf Gute Nacht
Zuletzt geändert von wuf am Mittwoch 24. Februar 2010, 15:56, insgesamt 1-mal geändert.
Take it easy Mates!
Ich danke dir für deine Hilfe und werde mich jetzt an das Problem wenden, das mach ich aber alleine, muss ja gucken, ob ich das auch ganz alleine hinkriege
Ich danke dir für deinen Aufwand und deine Mühe!!!
Liebe Grüße Muh
...... OK. Kein Problem unser Forum ist gut durchmischt von Mitgliedern mit einem Helfer- bzw. Lehrersyndrom.
Sag deinem Lehrer er soll unser Forum zwecks Weiterbildung in Python & GUI-Sprachen besuchen.
Gruss wuf
Sag deinem Lehrer er soll unser Forum zwecks Weiterbildung in Python & GUI-Sprachen besuchen.
Gruss wuf
Take it easy Mates!