Hallo erstmal,
ich habe folgendes Problem.
Ich Programmiere gerade ein Programm wo ich aus einem Logfile was ein Server schreibt, Daten auslesen kann diese werden dann zuerst in eine Datenbank geschrieben und danach aus der Datenbank in ein ListCtrl übertragen dort kann man sie dann schön Sortiert in einem ListCtrl (Ist in einer Klasse namens Tabelle) bestaunen. Bei Betätigen der so genannten wx.EVT_LIST_COL_CLICK (Schaltfläche namens Typ)wird schon mal sortiert. Nun habe ich ein wx.Menu, Bei den Eigenschaften Typ / Option
Öffne ich nun ein Dialog Fenster (Ist in einer neuen Klasse namens TestDialog, welches von Tabelle erbt).
So auf diesem Dialog Fenster befindet sich eine RadioBox.
Wo ich, nun Auswählen kann, ob ich bei der Art Typ Nur Fehler oder Warnung oder Meldung oder Störung (und einige mehr) angezeigt bekommen möchte.
So nun wähle ich also mit der RadioBox aus, was ich gleich nur angezeigt bekommen haben möchte. Nehmen wir z.b. Meldung.
Innerhalb dieser Klasse TestDialog. Kann ich die Variabel die Self.Typ heißt abrufen. Und bekomme auch das Ergebnis, dass ich Meldung ausgewählt habe.
Nun gibt es zwei Möglichkeiten, innerhalb der Klasse TestDialog aus der Datenbank ins ListCtrl lesen und nur die Typen Meldung angezeigt zubekommen. Wobei der Fehler auftaucht. Beim Löschen der Aktuellen Einträge, die sich im ListCtrl befinden. Das es kein Self.list (Name des ListCtrl) gibt. oder die zweite Variante, Die Variabel Self.Typ (die den Wert aus der RadioBox trägt) von der Klasse TestDialog in die Klasse Tabelle zu übertragen.
Bei meinen Versuchen kam als Ergebnis immer 0 raus. („Nein Meldung steht in der RadioBox nicht auf der Reinfolge 0“), auch bei einer anderen Auswahl Störung z.b. kam als Ergebnis 0 raus.
Das ist also mein Problem, Wie kann ich auf der einfachsten weise Einen Variabel Übertrag machen von der Klasse TestDialog in die Klasse Tabelle. Von der Variante im TestDialog aus der Datenbank zu lesen halt ich mich mal fern, finde das nicht wirklich sehr effektive, wo ja auch noch die Sache wäre das er kein Self.list kennt.
Habe auch schon in Forum am Wochenende Gesucht aber habe nichts dem entsprechend gefunden nur ein Ähnliches Programm von Benutzer BlauerFasan mit dem Beitrag Event-Handling eines ListControls; Sortierung vornehmen, Der mir mit seinem Beitrag fürs Sortieren schon geholfen hat. Des Weiteren mehrer Klassenkameraden gefragt und auch da konnte mir keiner weiterhelfen.
Nun ist meine Letzte Chance eine schöne Lösung von euch zu bekommen, damit ich endlich weitermachen kann.
Mit freundlichen Grüßen Zandi
QuellText Normal
#Hier bin ich nun im Unterprogramm OnOption was ich verwende um in #die Klasse TestDialog zuwechseln.
Code: Alles auswählen
def OnOption(self, event):
EinstellungDialog = TestDialog(self, -1, "Einstellungen")
EinstellungDialog.CenterOnScreen()
EinstellungDialog.ShowModal()
self.OnEinstellung()
#jetzt befinden wir uns in der Klasse TestDialog
Code: Alles auswählen
def OnRadio(self, event):
self.Typ =str(self.AuswahlTypen[event.GetInt()])
Code: Alles auswählen
def OnClickUeber(self, event):
if self.Typ == 'Alle Typen': pass
if self.Typ == 'Meldung':
self.Einstellung.Destroy()
#und von dort wechseln wir dann in Self.OnEinstellung
#Nun sind wir wieder in der Klasse Tabelle, Hier connecten wir erstmal #neu auf die Datenbank und Sortieren wir einfach erstmal wieder Nach #Typ, umzuschauen das wir bis dorthin gekommen sind, nun ist aber die #Frage WIE übergebe ich die Variabel Self.Typ in
#der Klasse TestDialog zur Klasse Tabelle also zum Unterprogramm
Code: Alles auswählen
OnEinstellung.
def OnEinstellung(self):
try:
from pysqlite2 import dbapi2 as sqlite
except:
from sqlite3 import dbapi2 as sqlite
myconn = sqlite.connect ('f:/20070719.db3', isolation_level = None)
self.cursor = myconn.cursor()
try:
self.list.DeleteAllItems()
except:
print ‘Loeschen der ListCtrl fehlgeschlagen'
self.cursor.execute ("SELECT * FROM csv ORDER by Typ"), self.Read()
SO ich hoffe jemand Steigt durch diesen Gewusel durch und kann mir Helfen
UNd bitte verzeiht mir meine Übermäßigen Rechtschreibfehler, habe mir schon mühe gegeben
edit:
Meine versuche habe ich jetzt, nicht drin da sie auch nicht mehr existieren und ich mich auch nicht mehr erinnern kann, wie ich das gemacht habe, und da es schon irgend wann abends um 23 uhr war, habe ich auch nicht dran gedacht die einfach auszukommentieren sondern hab sie einfach wieder gelöscht damit das Programm wenigstens so funktioniert