wxApp und wxFrame Stacktraces und Fehler auf die Konsole uml

Plattformunabhängige GUIs mit wxWidgets.
Antworten
madRAM
User
Beiträge: 14
Registriert: Sonntag 5. März 2006, 11:28

Hallo zusammen,

ich habe ein kleines Pythonprogramm dass einen Fehler hat. Leider wird der Fehler nur sekundenbruchteile und auch noch in einem viel zu kleinen Frame angezeigt, bevor sich das Programm beendet.

Meine Frage ist nun, wie kann ich eine solche Fehler/Stacktrace-Ausgabe auf die Konsole umleiten???


Danke und Gruss,

Chris
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

madRAM hat geschrieben:Hallo zusammen,

ich habe ein kleines Pythonprogramm dass einen Fehler hat. Leider wird der Fehler nur sekundenbruchteile und auch noch in einem viel zu kleinen Frame angezeigt, bevor sich das Programm beendet.

Meine Frage ist nun, wie kann ich eine solche Fehler/Stacktrace-Ausgabe auf die Konsole umleiten???


Danke und Gruss,

Chris
Wie hast du wx.App initialisiert? mit 0 oder 1? (redirect parameter).

Sonst würd ich wx.App 0 übergeben, und dann von der console
python.exe myprog.py aufrufen.

Ansonsten ist die Frage durchaus für das Forum "Allgemeine Fragen" geeignet.
madRAM
User
Beiträge: 14
Registriert: Sonntag 5. März 2006, 11:28

ich hab wx.App mit 0 initialisiert - eigentlich hab ich sie auch noch mit wxApp initialisiert - habe aber gerade erfahren, dass man nun wx.App verwenden soll.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

madRAM hat geschrieben:wie kann ich eine solche Fehler/Stacktrace-Ausgabe auf die Konsole umleiten?
Hi Chris!

Dank meinem neuen Buch, kann ich so langsam auch ein paar wxPython-Fragen beantworten. :D

Der ausschlaggebende Schalter ist redirect = False.

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import wx

class MyFrame(wx.Frame):
    def __init__(self, parent = None, id = -1, title = "wxPython"):
        wx.Frame.__init__(self, parent, id, title)
        self.Center()
        self.Show()

class MyApp(wx.App):
    def OnInit(self):
        self.my_frame = MyFrame()
        print "Ab in die Konsole mit dieser Meldung..."
        self.MainLoop()
        return True

app = MyApp(redirect = False)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Francesco
User
Beiträge: 824
Registriert: Mittwoch 1. Dezember 2004, 12:35
Wohnort: Upper Austria

gerold hat geschrieben:
madRAM hat geschrieben:wie kann ich eine solche Fehler/Stacktrace-Ausgabe auf die Konsole umleiten?
Hi Chris!

Dank meinem neuen Buch, kann ich so langsam auch ein paar wxPython-Fragen beantworten. :D

:-)
Hallo Gerold,

das ist super.

Ich habe das Buch gestern bei Amazon (nach längerem Zögern) bestellt.
Durch den kürzlich erhaltenen Gutschein spare ich mir 5 Euronen.

Das aber app.MainLoop in App->OnInit aufgerufen wird,
sieht in meinen Augen etwas komisch aus.
Ist das so auch im Buch? :?

Ich würde das Grundgerüst in etwa so aufziehen:

Code: Alles auswählen

import wx
               
class MyFrame(wx.Frame):   
    def __init__(self,parent):
        wx.Frame.__init__(self,parent)
        self.Center()

app = wx.App(redirect = False)
frame = MyFrame(None)
frame.Show(True)
app.MainLoop()
Antworten