Warum schließt sich mein Programm sofort wieder?
Verfasst: Donnerstag 1. Oktober 2015, 07:28
Ich habe ein Verschlüsselungsprogramm geschrieben. Wenn ich es in IDLE teste funktioniert alles, aber direkt aus dem Windows Explorer öffnet sich kurz die Python shell und es werden zwei(aufgrund der kurzen anzeigezeit) unlesbare Zeilen ausgegeben :K .
Ich weiß, dass mein Programmierstil nicht der beste ist
Hier der code:
Ich weiß, dass mein Programmierstil nicht der beste ist
Hier der code:
Code: Alles auswählen
#Python 3.4.1
from tkinter import *
from tkinter.filedialog import *
import time
import sys
import os
from string import *
import webbrowser
global root
root = Tk()
class screen(Frame):#Mein spezieller Frame
def add_widget(self,widget,**options):
widget.master = self
widget.pack(**options)
def geometry(self,höhe,breite):
self["height"] = höhe
self["width"] = breite
def __init__(self,master,borderwidth=0,bg="white",pos=NONE):
Frame.__init__(self,master,borderwidth=borderwidth,bg=bg)
print("screen angelegt")
def tempsavescr(scrname):#bewährt, um die screens zu wechseln
schreiber = open("Dateien/tmp/packscreen.tmp","w")
schreiber.write(scrname)
schreiber.close()
tempsavescr("tempsavescreen und temploadscreen funktionieren!")
def temploadscr():#bewährt, um die screens zu wechseln
leser = open("Dateien/tmp/packscreen.tmp")
packscreen = leser.read()
leser.close()
return packscreen;
print(temploadscr())
tempsavescr("start")
#def verschlüsseln():
# pass
#verschlüsseln() wird nur durch einen Button in vgui() gerufen.
def vgui():
def acceptevent(vstring):
print("vstring( " + vstring + " )wird an verschlüsseln übergeben.")
verschlüsseln(vstring)
packscr = temploadscr()
print(packscr)
if packscr == "start":
start.pack_forget()
elif packscr == "escr":
escr.pack_forget()
elif packscr == "vscr":
exit()
global vscr
vscr = screen(root)
vscr.geometry(höhe=100,breite=100)
vscr.text = screen(vscr)
vscroll = Scrollbar(vscr.text)
vtext = Text(vscr.text,height=40,width=170)
vscroll.pack(side="right",fill="y")
vtext.pack(side="left",fill="y")
vscroll.config(command=vtext.yview)
vtext.config(yscrollcommand=vscroll.set)
okbutton = Button(vscr,command=lambda:acceptevent(vtext.get(1.0,END)),text="Verschlüsseln",relief="raised",borderwidth=1,bg="white",fg="green")
okbutton.pack(side="bottom")
vscr.text.pack()
vscr.pack()
tempsavescr("vscr")
#def entschlüsseln(string):
# pass
#entschlüsseln() wird nur durch einen Button in egui() gerufen
def egui():
def acceptevent(estring):
print("estring( " + estring + " )wird an verschlüsseln übergeben.")
entschlüsseln(estring)
packscr = temploadscr()
print(packscr)
if packscr == "start":
start.pack_forget()
elif packscr == "escr":
exit()
elif packscr == "vscr":
vscr.pack_forget()
global escr
escr = screen(root)
escr.geometry(höhe=100,breite=100)
escr.text = screen(escr)
escroll = Scrollbar(escr.text)
etext = Text(escr.text,height=40,width=170)
escroll.pack(side="right",fill="y")
etext.pack(side="left",fill="y")
escroll.config(command=etext.yview)
etext.config(yscrollcommand=escroll.set)
okbutton = Button(escr,command=lambda:acceptevent(etext.get(1.0,END)),text="Entschlüsseln",relief="raised",borderwidth=1,bg="white",fg="green")
okbutton.pack(side="bottom")
escr.text.pack()
escr.pack()
tempsavescr("escr")
root.title("SC Test")
root.geometry("500x500")
bar = Menu(root)#erstelle leiste
#featurem
featurem = Menu(bar)
featurem.add_command(label="Verschlüsseln",command=lambda:vgui())
featurem.add_command(label="Entschlüsseln",command=lambda:egui())
#helpm
helpm = Menu(bar)
helpm.add_command(label="Website Hotp44.de",command=lambda:webbrowser.open("http://Hotp44.de/"))
global start
start = screen(root)
startlabel1 = Label(start,text="\nWillkommen bei SC!\n",bg="blue",fg="yellow",font="Arial 30")
start.add_widget(startlabel1)
startlabel2 = Label(start,text="Bitte wählen Sie eine Aktion unter 'Funktionen' aus!",bg="white",fg="black",font="Arial 10")
start.add_widget(startlabel2)
start.pack()
kill = Button(root,text="\nBeenden\n",bg="white",fg="red",font=None,command=exit)
kill.pack(side="bottom")
bar.add_cascade(label="Funktionen",menu=featurem)#zeige "Funktionen" an
bar.add_cascade(label="Hilfe",menu=helpm)#zeige "Hilfe" an
root.config(menu=bar)
root.mainloop()