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
Lofgiles anzeigen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo maxip!maxip hat geschrieben:Mit welchem Widgets (muss scrollbar sein) sollte ich diese Logfiles am Besten anzeigen lassen?
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.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
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()