Lofgiles anzeigen

Plattformunabhängige GUIs mit wxWidgets.
Antworten
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Hi,

mein Programm erzeugt logfiles. Mit welchem Widgets (muss scrollbar sein) sollte ich diese Logfiles am Besten anzeigen lassen?

Da gibs doch sicher schon ein fertiges Widget?

Danke

ciao
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

maxip hat geschrieben:Mit welchem Widgets (muss scrollbar sein) sollte ich diese Logfiles am Besten anzeigen lassen?
Hallo maxip!

Du könntest z.B. den *ScrolledMessageDialog* verwenden. Du kannst die Log-Dateien natürlich aber auch in einem ganz normalen TextCtrl anzeigen lassen. Das liegt ganz bei dir.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
maxip
User
Beiträge: 61
Registriert: Dienstag 11. März 2008, 09:43

Code: Alles auswählen

from log.logReader import LogReader
import wx
import os

class LogWindow(wx.Frame):
    def __init__(self, parentFrame = None, id = wx.ID_ANY, heading = "Showing Log File"):
        wx.Frame.__init__(self, parentFrame, wx.ID_ANY, heading, size=(780, 600))
        self.panel = wx.Panel(self, wx.ID_ANY, size=(780, 600))
        self.chooseFileButton = wx.Button(self.panel, -1, "Choose another log-file", pos=(10,10))
        self.Bind(wx.EVT_BUTTON, self.OnButton, self.chooseFileButton)
        self.logReader = LogReader()
        if heading == "Showing last Summary-Logfile":
            log = self.logReader.getLatestSummaryLogAsString()
        else:
            log = self.logReader.getLatestSessionLogAsString()
        self.logWidget = wx.TextCtrl(self.panel, -1, log, size=(760, 500), pos=(10, 40), style=wx.TE_MULTILINE|wx.TE_PROCESS_ENTER)
        self.logWidget.SetEditable(False)
        self.Show()
    """shows open file Dialog to choose the log-file manually"""
    def OnButton(self, e):
        wildcard = "Log-File (*.log)|*.log"
        dlg = wx.FileDialog(
            self, message="Choose a file",
            defaultDir=os.getcwd(), 
            defaultFile="",
            wildcard=wildcard,
            style=wx.OPEN | wx.MULTIPLE | wx.CHANGE_DIR
            )
        if dlg.ShowModal() == wx.ID_OK:
            paths = dlg.GetPaths()
            for path in paths:
                self.logWidget.SetValue(self.logReader.readFile(path))
            self.logWidget.Refresh()
            self.logWidget.Update()
        dlg.Destroy()

class SummaryLogWindow(LogWindow):
    def __init__(self, parent = None, id = wx.ID_ANY, heading = "Showing last Summary-Logfile"):
        LogWindow.__init__(self, parent, id, heading)

class SessionLogWindow(LogWindow):
    def __init__(self, parent = None, id = wx.ID_ANY, heading = "Showing last Session-Logfile"):
        LogWindow.__init__(self, parent, id, heading)

if __name__ == "__main__":
    app = wx.PySimpleApp()
    logWindow = SummaryLogWindow()
    app.MainLoop()
Antworten