Seite 1 von 1
Grid Control anpassen
Verfasst: Donnerstag 3. Juli 2008, 16:28
von Korea-2003
Hi,
ich hab auf meinem Formular ein Grid Control.
Nun habe ich zwei Fragen dazu.
1. Wie kann ich in der letzten Spalte in jede Zelle eine Checkbox einbauen?
2. Wie muss ich tun damit, wenn ich eine Celle der vorletzten Spalte anklicke, dann ein Event anspringt?
MfG

Verfasst: Montag 7. Juli 2008, 15:46
von Korea-2003
Also das Checkbox Problem hab ich ganz einfach mit den Spaltenattributen gelöst.
Code: Alles auswählen
attr = wx.grid.GridCellAttr()
attr.SetEditor(wx.grid.GridCellBoolEditor())
attr.SetRenderer(wx.grid.GridCellBoolRenderer())
self.grid.SetColAttr(4, attr)
Nun bleibt aber immernoch die Frage offen, wie kann ich eine Spalte mit einem Event versehen. Ganz genau: In den Zellen der Spalte stehen Pfade mit Dateinamen. Wenn ich nun eine dieser Zellen anklicke, soll das File geöffnet werden. Ist das überhaupt möglich und wenn ja, wie?
MfG

Verfasst: Montag 7. Juli 2008, 16:21
von gerold
Korea-2003 hat geschrieben:wie kann ich eine Spalte mit einem Event versehen. Ganz genau: In den Zellen der Spalte stehen Pfade mit Dateinamen. Wenn ich nun eine dieser Zellen anklicke, soll das File geöffnet werden.
Hallo Korea!
Hier
http://docs.wxwidgets.org/stable/wx_wxgrid.html stehen die Events drinnen, die du nutzen kannst. Vielleicht kannst du mit EVT_GRID_EDITOR_SHOWN etwas anfangen.
mfg
Gerold

Verfasst: Dienstag 8. Juli 2008, 08:37
von Korea-2003
Danke Gerold,
ich habs jetzt mit
EVT_GRID_CELL_LEFT_DCLICK gelöst.
Code: Alles auswählen
self.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnLeftDClick, self.grid)
def OnLeftDClick(self, evt):
col = self.grid.GetGridCursorCol()
row = self.grid.GetGridCursorRow()
if col == 3:
path = self.grid.GetCellValue(row, col)
if not path == "" or path == None:
os.startfile(path)
Kann ich bei os.startfile() irgendwie angeben, dass er das File, welches in der Zelle steht mit einem Template öffnet (zB. Wordvorlage)?
MfG
