Hallo!
Ich würde gern ein Button einfügen, über den man das gestartete Programm wieder in den Grundzustand zurück versetzt ohne es neu zu starten.
Gibt es dafür eine Lösung?
Gruss
Stefanie
Programm reset ohne Neustart
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo Stefanie!
mfg
Gerold


Code: Alles auswählen
def grundzustand():
wx.MessageBox("Bitte starten Sie das Programm!", ";-)")
Gerold

http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wie definierst du "Grundzustand"? Wenn es nur darum geht, die ursprüngliche Anzeige wiederherzustelllen, dann musst du im Event Handler für den Button wohl jedes Widgets manuell zurücksetzen.
Hoi Stefanie,
kann mich lunar nur anschließen: Es hängt sehr davon ab, was genau Du erreichen willst. Ich habe z. B. ein Plotting-Programm geschrieben (für eine bes. Form von Daten - hier nicht wichtig) und da habe ich folgende Methode für den Hauptframe:
Was geschieht ist folgendes: Instanzen des Hauptframes werden "zurückgesetzt" und alles, was der Nutzer evtl. mit Menüs gemacht haben könnte, ebenfalls. Z. B. könnte ja ein Menüeintrag mit einem "Checkhäckhen" versehen sein, da aber das bei mir z. T. kontextabhängig ist und nur geht, wenn vorher der Nutzer des Programms auch die Daten bereitet hat, wird das alles ohne zu fragen "entchecked".
Außerdem werden Methoden aufgerufen, die dafür sorgen, daß die Toolbar und der Fensterbereich, in dem geplottet wird, anschließend "sauber" sind.
Wenn ich mich richtig erinnere, wird Dein Programm durchaus ähnliche Aspekte haben: Daten löschen, Fenster säubern, etc. etc.
Du siehst: Das ist u. U. mit Aufwand verbunden.
HTH
Christian
kann mich lunar nur anschließen: Es hängt sehr davon ab, was genau Du erreichen willst. Ich habe z. B. ein Plotting-Programm geschrieben (für eine bes. Form von Daten - hier nicht wichtig) und da habe ich folgende Methode für den Hauptframe:
Code: Alles auswählen
def OnResetProgram(self, event=None):
"""
Will flush the buffer and reset the program
"""
self.active_datasets = []
self.fit_data = None
self.modus = None
self.log_intensity = True
self.log_both = False
...
#disable the following menu items:
itemlist = (
("Evaluate", "Scale I(q) for plotting"),
("Evaluate", "Kratky Plot", False),
...
("View", "Log Intensity"),
("View", "Log both"),
...
)
for itemt in itemlist:
id = self.GetMenuBar().FindMenuItem(itemt[0],itemt[1])
self.GetMenuBar().Enable(id,False)
try:
self.GetMenuBar().Check(id,itemt[2]) #uncheck if 'checkable'
except: pass
self.plot_data()
self.canvas.draw()
self.toolbar.update()
Außerdem werden Methoden aufgerufen, die dafür sorgen, daß die Toolbar und der Fensterbereich, in dem geplottet wird, anschließend "sauber" sind.
Wenn ich mich richtig erinnere, wird Dein Programm durchaus ähnliche Aspekte haben: Daten löschen, Fenster säubern, etc. etc.
Du siehst: Das ist u. U. mit Aufwand verbunden.
HTH
Christian
Ja es geht um Einträge löschen bzw. zurücksetzen
Ich hab gedacht das geht irgendwie einfacher. Deswegen hab ich auch in der Doku nix gefunden...
Vielen Dank für die Tips, dann werd ich's so machen.
@Gerold
Hab doch gesagt ohne Neustart
Liebe Grüsse
Ich hab gedacht das geht irgendwie einfacher. Deswegen hab ich auch in der Doku nix gefunden...
Vielen Dank für die Tips, dann werd ich's so machen.
@Gerold
Hab doch gesagt ohne Neustart

Liebe Grüsse