Frage zu Checkboxen in wxPyGridTableBase

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Gopfish
User
Beiträge: 14
Registriert: Mittwoch 24. Oktober 2007, 16:45

Hallo

bin absolut neu in Python, muss aber nun wegen Arbeit ein Tool schreiben und habe dabei ein kleines Problem.

Und zwar folgendes:
Ich möchte eine Tabelle im Stil von GridCustTable.py (aus der Demo) bauen, in der sowohl Text als auch Checkboxen vorkommen.
Die Spalten für die Checkboxen hab ich wie in der Demo mit
self.dataTypes = [wxGRID_VALUE_BOOL,]
gesetzt. Wenn ich das Tool nun aber starte steht in den entsprechenden Feldern immer nur 1 bzw 0 anstatt, dass eine Checkbox erscheint.
Benötigt man da noch irgendein besonderes Kommando, welches die wxGRID_VALUE_BOOL Spalten als Checkboxen darstellt, das ich in der Demo übersehn habe???

Hoffe ich habe es verständlich ausgedrückt.
Ach ja, System ist Win XP und ich nutze wx python v2.4.
Danke schonmal im Voraus.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Gopfish hat geschrieben:Die Spalten für die Checkboxen hab ich wie in der Demo mit self.dataTypes = [wxGRID_VALUE_BOOL,]
gesetzt.
Hallo Gopfish!

Willkommen im Python-Forum!

Hast du auch an die Methode ``GetTypeName`` gedacht?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Gopfish
User
Beiträge: 14
Registriert: Mittwoch 24. Oktober 2007, 16:45

Ohje, danke.

Die hatte ich nicht ... wäre aber nie im Leben drauf gekommen, dass
GetTypeName was mit den Checkboxen zu tun hat :roll:

Nuja danke vielmals :D
Gopfish
User
Beiträge: 14
Registriert: Mittwoch 24. Oktober 2007, 16:45

Stehe diesbezüglich wieder vor einem neuen Problem ... hoffe das liest hier drin noch jemand :?

Habe ja nun meine Checkboxen, aber irgendwie kann ich die nicht anklicken :( Habe versucht das mit einem EVENT zu machen, haut aber irgendwie nicht hin :x

Hier mein EVENT ... hoffe der Code snippet hilft was ...

Code: Alles auswählen

  ...

        EVT_GRID_SELECT_CELL(self.panelleft, self.CBcellSelect)  #panelleft ist das Grid in dem mein wxPyGridTableBase liegt

 ...

    def CBcellSelect(self, event):
       if ((event.GetCol() == 6) or (event.GetCol() == 7) or (event.GetCol() == 8)):
          value = self.panelleft.GetTable().GetValue(event.GetRow(), event.GetCol())
          if value == 1:
             value = 0
             self.panelleft.GetTable().SetValue(event.GetRow(), event.GetCol(), value)
          elif value == 0:
             value = 1
             self.panelleft.GetTable().SetValue(event.GetRow(), 6, 0)
             self.panelleft.GetTable().SetValue(event.GetRow(), 7, 0)
             self.panelleft.GetTable().SetValue(event.GetRow(), 8, 0)
             self.panelleft.GetTable().SetValue(event.GetRow(), event.GetCol(), value)
        
          self.panelleft.ForceRefresh()
       event.Skip()

Ändern soll nur in den 3 Spalten funktionieren, wo die Checkboxen sind, und es darf pro Reihe nur maximal eine Checkbox aktiv sein. Daher das ganze getue in CBcellSelect :)

Tschuldigung, dass ich soviel frage, bis jetzt lief eigentlich alles ganz gut aber die Checkboxen treiben mich in den Wahnsinn. Erst sind se garnet da und jetzt wo ich sie habe kann ich sie nicht klicken :oops:

Und schomal DANKE im vorraus für jedwede Hilfe.
Gopfish
User
Beiträge: 14
Registriert: Mittwoch 24. Oktober 2007, 16:45

Hab das Problem inzwischen selbst gefunden.
Lag nicht am Event. Mein Grid hatte nur den falschen parent.
Naja Wald vor lauter Bäumen net gesehn :D
Antworten