ich möchte für den Pocket-PC ein Routenauswertungsprogramm schreiben.
Ich hatte schon einmal ein solches mit VB geschrieben, möchte mich aber jetzt an Python versuchen.
Meine Frage: Wie kann ich z.B. von der Klasse "RoutenPage" auf die Klasse "FahrtenbuchPage" zugreifen?
Der folgende Aufruf ist wohl falsch:
FahrtenbuchPage.ed1_append("Gewaehlte Route: %s\n" % sWahl)
Ein Beispielaufruf zum unten angegebenen Code wäre mir sehr hilfreich.
Danke für eure Hilfe.
Code: Alles auswählen
# -*- coding: cp1252 -*-
import ppygui.api as gui
import os, glob, math
sPath = "\\Storage Card\\OziExplorer\\Data"
slFiles = []
slRow = []
def dirglob(dir, pattern):
fullPattern = os.path.join(dir,pattern)
return glob.glob(fullPattern)
# Einlesen der Dateinamen der Routen
# und später das Berechnen von Entfernung, verbrauchte Zeit etc.
class RoutenPage(gui.Frame):
ed1_txt = ""
def __init__(self, parent):
gui.Frame.__init__(self, parent)
self.lb1 = gui.Label(self, "Route waehlen:",
align="center",
font=gui.Font(size=8,color=(0,0,255)))
slTracks = dirglob(sPath, "*.plt")
for sDatei in slTracks:
sDatei = sDatei.split('\\')
slFiles.append("%s" % sDatei[-1])
self.li1 = gui.List(self, choices=slFiles)
self.li1.bind ( itemactivated = self.BerechneRoute )
sizer = gui.VBox(border=(2,2,2,2), spacing=2)
sizer.add(self.lb1)
sizer.add(self.li1)
self.sizer = sizer
def BerechneRoute(self, parent):
iWahl = self.li1.selection
sWahl = slFiles[iWahl]
# Fahrtenbuch mit Ergebnis der Berechnungen (die noch kommen) neu füllen => klappt nicht so
FahrtenbuchPage.ed1_append("Gewaehlte Route: %s\n" % sWahl) # Testausgabe
class FahrtenbuchPage(gui.Frame):
def __init__(self, parent):
gui.Frame.__init__(self, parent)
self.lb1 = gui.Label(self, "Fahrtenbuch:",
align="center",
font=gui.Font(size=8,color=(0,0,255)))
self.ed1 = gui.Edit(self,"",multiline=True)
self.ed1.readonly = True
sizer = gui.VBox(border=(2,2,2,2), spacing=2)
sizer.add(self.lb1)
sizer.add(self.ed1)
self.sizer = sizer
def ed1_append(self, parent, wert):
self.ed1.append(wert)
class Auswahl(gui.NoteBook):
PAGES = [ ('Routen', RoutenPage) , ('Fahrtenbuch', FahrtenbuchPage) ]
def __init__(self, parent):
gui.NoteBook.__init__(self, parent)
for title, klass in self.PAGES:
self.append(title, klass(self))
self.selection = 0
def select(self, parent):
self.selection = 1
class MainFrame(gui.CeFrame):
def __init__(self):
gui.CeFrame.__init__(self,
title="Routenauswertung",
action=("About", self.on_about),
menu="Menue")
for i, (page, klass) in enumerate(Auswahl.PAGES):
self.cb_menu.append(page, callback=self._menu_cb(i))
self.nb = Auswahl(self)
sizer = gui.VSizer()
sizer.add(self.nb)
self.sizer = sizer
def _menu_cb(self, i):
def cb(event):
self.nb.selection = i
return cb
def on_about(self, ev):
gui.Message.ok("About", "Routenauswertung", "info", self)
if __name__ == '__main__' :
app = gui.Application(MainFrame())
app.run()