Ich brauche Hilfe, beim Tkinter Vollbilmodus!!!
@koenigssphinx: Da kannst Du wahrscheinlich lange warten, denn die Lösung(en) stehen hier ja. Warum das bei *Dir* nicht funktioniert, kann man nicht sagen solange Du nicht verrätst was Du denn jetzt konkret anders machst als die Beispielprogramme.
-
- User
- Beiträge: 14
- Registriert: Samstag 11. Mai 2013, 10:51
- Kontaktdaten:
Na Schön. Eigentlich sollte der Code ja bis zum Ende mein Geheimnis bleiben, aber jetzt bleibt mir wohl nicht mehr viel übrig.
Code: Alles auswählen
class Editor:
def __init__(self):
self.fs = False
self.fil = "Untitled Document"
self.save = True
self.main = Tk(className="")
self.main.title("pyIDE [Untitled Document] 1.0")
scroll = Scrollbar(self.main)
scroll.pack(side=RIGHT, fill=Y)
self.content = Text(self.main, yscrollcommand=scroll.set, wrap=WORD, tabs=("1c"))
scroll.config(command=self.content.yview)
self.content.bind("<Any-KeyPress>", self.unsave)
self.main.bind_all("<Control-KeyPress-s>", self.sfe)
self.main.bind("<Configure>", self.expand)
self.main.bind_all('<F11>', self.cf)
self.content.pack()
self.main.geometry("700x500")
self.menu = Menu(self.main)
self.main.config(menu=self.menu)
filemenu = Menu(self.menu, tearoff=0)
self.menu.add_cascade(label="File", menu=filemenu)
nfm = Menu(self.menu, tearoff=0)
filemenu.add_cascade(label="New", menu=nfm)
nfm.add_command(label="Empty Project", command=self.nf)
nfm.add_command(label="OOP Project", command=self.nfo)
nfm.add_command(label="Form Project", command=self.nff)
filemenu.add_command(label="Open", command=self.of)
filemenu.add_command(label="Save", command=self.sf)
filemenu.add_command(label="Save As", command=self.sfa)
filemenu.add_separator()
self.main.after(100, self.iniform)
self.main.after(0, self.register)
filemenu.add_command(label="Exit", command=self.main.destroy)
exemenu = Menu(self.menu, tearoff=0)
self.menu.add_cascade(label="Execute", menu=exemenu)
exemenu.add_command(label="Run", command=self.run)
exemenu.add_command(label="Run Line for Line(Debug)", command=self.runlfl)
helpmenu = Menu(self.menu, tearoff=0)
self.menu.add_cascade(label="?", menu=helpmenu)
helpmenu.add_command(label="Register", command=self.reg)
self.main.protocol("WM_DELETE_WINDOW", self.close)
def cf(self, event):
self.main.wm_attributes("-fullscreen", not self.fs)
self.fs= not self.fs
def reg(self):
s = registerDialog()
def runlfl(self):
try:
self.content.tag_configure("err", background="white")
except:
pass
x = self.content.get('1.0', END)
y = 0
x = x.split("#:breakpoint")
for i in x:
try:
y += 1
exec(i)
if i != len(x)-1:
showwarning("SystemBreak", "Die weitere Ausführung des Programmes wurde durch einen Breakpoint verhindert!")
except:
showerror("Fehler!", "Die Ausführung des Programmes wurde unterbrochen in Zeile " + str(y) + "!!!")
self.content.tag_add("err", str(y) + ".0", str(y) + ".end")
self.content.tag_configure("err", background="red")
break
def run(self):
try:
self.content.tag_configure("err", background="white")
except:
pass
try:
exec(self.content.get('1.0',END))
except TypeError:
print e.TYPEError(1, "<pyIDE>", "<content>")
return
except ImportError:
print e.IMPORTError(1, "<pyIDE>", "<content>")
return
except NameError:
print e.NAMEError(1, "<pyIDE>", "<content>")
return
except OSError:
print e.osError(1, "<pyIDE>", "<content>")
return
except SystemExit:
print e.EXITError(1, "<pyIDE>", "<content>")
return
except SyntaxError:
print e.SYNTAXError(1, "<pyIDE>", "<content>")
return
except EOFError:
print e.eofError(1, "<pyIDE>", "<content>")
return
except KeyboardInterrupt:
print e.KEYError(1, "<pyIDE>", "<content>")
return
except MemoryError:
print e.MEMError(1, "<pyIDE>", "<content>")
return
except AssertionError:
print e.ASSERTONError(1, "<pyIDE>", "<content>")
return
except:
print e.Error(1, "<pyIDE>", "<content>")
return
def register(self):
c = registerCheck()
if not c:
s = registerDialog()
def iniform(self):
self.form = Form()
def expand(self, event):
self.content.config(width=event.width)
self.content.config(height=event.height)
def sfe(self, event):
self.sf()
def unsave(self, event):
if self.save:
letter = "abcdefghijklmnopqrstuvwxyz1234567890äÄöÖüÜABCDEFGHIJKLMNOBQRSTUVWXYZ!\"\\<>|-:,^°'#*+§$%&/()= "
if event.keysym in letter:
self.save = False
self.main.title("pyIDE [" + self.fil + "]* 1.0")
def sf(self):
if self.fil != "Untitled Document":
try:
fli = open(self.fil, "w")
self.main.title("pyIDE [" + self.fil + "] 1.0")
fli.write(self.content.get('1.0',END))
fli.close()
except:
showerror("Fehler!", "Das Speichern hat nicht geklappt!")
else:
self.sfa()
def sfa(self):
try:
fil = asksaveasfilename(filetypes=(("Python Files", "*.py"), ("Python File(no console)","*.pyw"), ("All Files", "*.*")), defaultextension="*.py")
if fil != '':
self.fil = fil
fli = open(self.fil, "w")
fli.write(self.content.get('1.0',END))
fli.close()
self.save = True
self.main.title("pyIDE [" + self.fil + "] 1.0")
else:
showwarning("Info!", "Eine Datei muss ausgewählt werden!\nWurde nicht gespeichert!")
except:
showerror("Fehler!", "Das Speichern hat nicht geklappt!")
def of(self):
fil = askopenfilename(filetypes=(("Python Files", "*.py"), ("Python File(no console)","*.pyw"), ("All Files", "*.*")), defaultextension="*.py")
if fil != '':
try:
xname = open(fil, "r")
con = xname.readlines()
xname.close()
self.nf()
self.fil = fil
self.main.title("pyIDE [" + self.fil + "] 1.0")
for i in con:
self.content.insert(END, i)
except:
showerror("Fehler!", "Die Datei konnte nicht geöffnet werden!")
else:
showwarning("Info!", "Eine Datei muss ausgewählt werden\nWurde nicht geöffnet!")
def nf(self):
self.fil = "Untitled Document"
if not self.save:
if askyesno("ACHTUNG!", "Soll der Text gespeichert werden?"):
self.sf()
self.main.title("pyIDE [Untitled Document] 1.0")
self.content.delete('1.0', END)
def nfo(self):
self.nf()
oopc = """class Main:
def __init__(self, base):
self.base=base
pass
app=Main()
"""
self.content.insert('1.0', oopc)
def nff(self):
self.nf()
oopc = """from **formfile** import Form
class Main(Form):
def __init__(self):
Form.__init__(self)
app=Main()
app.MainLoop()
"""
self.content.insert('1.0', oopc)
def initialize(self):
self.main.mainloop()
def close(self):
# Do things before closing application
self.main.destroy()
Code: Alles auswählen
Königssphinx die 1. die Python kann
@koenigssphinx: Und jetzt könntest Du daraus ein minimales, aber lauffähiges Beispiel basteln, welches das Problem zeigt. Also alles rauswerfen was nicht zum Problem gehört. Dabei wirst Du vielleicht selber schon feststellen wo das Problem liegt.
-
- User
- Beiträge: 14
- Registriert: Samstag 11. Mai 2013, 10:51
- Kontaktdaten:
Ok! Getan, jetzt funktioniert alles, aber nur im MiniCode.
Der Code:
Der Code:
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import *
class Editor:
def __init__(self):
self.fs = False
self.fil = "Untitled Document"
self.main = Tk(className="")
self.main.title("pyIDE [Untitled Document] 1.0")
scroll = Scrollbar(self.main)
scroll.pack(side=RIGHT, fill=Y)
self.content = Text(self.main, yscrollcommand=scroll.set, wrap=WORD, tabs=("1c"))
scroll.config(command=self.content.yview)
self.main.bind("<Configure>", self.expand)
self.main.bind_all('<F11>', self.cf)
self.content.pack()
self.main.geometry("700x500")
self.main.protocol("WM_DELETE_WINDOW", self.close)
def cf(self, event):
self.main.wm_attributes("-fullscreen", not self.fs)
self.fs= not self.fs
def expand(self, event):
self.content.config(width=event.width)
self.content.config(height=event.height)
def initialize(self):
self.main.mainloop()
def close(self):
# Do things before closing application
self.main.destroy()
m = Editor()
m.initialize()
Code: Alles auswählen
Königssphinx die 1. die Python kann
@koenigssphinx: Das nützt ja nichts, wir brauchen ein Codebeispiel welches *nicht* funktioniert, aber nicht den ganzen Kram enthält an dem es *nicht* liegt das es nicht funktioniert. Irgendetwas von dem was Du jetzt weg gelassen hast, ist der Grund warum es in Deinem vollständigen Programm nicht funktioniert. Dem kommt man auf die Spur in dem man Stück für Stück entfernt, solange bis das Problem nicht mehr auftritt. Irgend wann kommt man dann zu einem Punkt da funktioniert es und vor dem entfernen eines Codestücks funktionierte es nicht. Dann weiss man an welchem Code es liegt.