Seite 1 von 1
Lofgiles anzeigen
Verfasst: Donnerstag 5. Juni 2008, 18:18
von maxip
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
Re: Lofgiles anzeigen
Verfasst: Donnerstag 5. Juni 2008, 22:32
von gerold
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

Verfasst: Freitag 6. Juni 2008, 12:35
von maxip
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()