Ich brauche Hilfe, beim Tkinter Vollbilmodus!!!

Fragen zu Tkinter.
Antworten
BlackJack

@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.
koenigssphinx
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
BlackJack

@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.
koenigssphinx
User
Beiträge: 14
Registriert: Samstag 11. Mai 2013, 10:51
Kontaktdaten:

Ok! Getan, jetzt funktioniert alles, aber nur im MiniCode.
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
BlackJack

@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.
Antworten