wxGrid SelectionModes
-
hallo,
ich versuche, lt Anleitung auf dieser Seite
https://docs.wxwidgets.org/trunk/classwx_grid.html
den Selections-Modus für das wxGrid auf SingleSelection einzurichten. Dazu habe ich im public-Bereich das hinzugefügt:enum wxGridSelectionModes { wxGridSelectCells , wxGridSelectRows , wxGridSelectColumns , wxGridSelectRowsOrColumns , wxGridSelectNone }
sowie CreateGrid lt Anleitung ergänzt:
Grid1->CreateGrid(20,8, wxGridSelectionModes selmode = wxGridSelectCells);
Nun erhalte ich folgenden Fehler:
DBtool3.cpp:261:51: error: expected primary-expression before ‘selmode’ 261 | Grid1->CreateGrid(20,8, wxGridSelectionModes selmode = wxGridSelectCells); | ^~~~~~~
Was habe ich falsch gemacht?
-
@gokusa Du hast das aus der Deklaration mit der Parameterdefinition kopiert.
Entweder:
Grid1->CreateGrid(20, 8, wxGridSelectCells);
oder, da das eh der Default ist
Grid1->CreateGrid(20, 8);
-
@gokusa sagte in wxGrid SelectionModes:
Dazu habe ich im public-Bereich das hinzugefügt:
enum wxGridSelectionModes { // ... }
Das brauchst (bzw. solltest) du nicht kopieren, da es ja schon in den wxWidgets-Headern definiert ist.
Bevor du mit einer UI-Lib arbeitest, solltest du aber die Grundlagen, wie das Aufrufen von Funktionen, kennen.
-
Grid1->CreateGrid(20,8);
hatte ich vorher, allerdings kann ich keinen Zellinhalt auslesen. Sobald ich die Methode per Button aufrufe, ist die Selection im Grid nicht mehr selektiert und ich erhalte
invalid row or column index in wxGridStringTable
Deshalb glaubte ich, es liegt am SelectionMode, wenn SingleSelection default ist lag ich da falsch.
Edit: Hat sich erledigt, die aufrufende Methode lieferte kein int für row und col. Mit
int row = Grid1->GetGridCursorRow(); int col = Grid1->GetGridCursorCol();
konnte ich das lösen.
-
@gokusa sagte in wxGrid SelectionModes:
Was mir gerade noch aufgefallen ist:Dazu habe ich im public-Bereich das hinzugefügt:
enum wxGridSelectionModes {
wxGridSelectCells ,
wxGridSelectRows ,
wxGridSelectColumns ,
wxGridSelectRowsOrColumns ,
wxGridSelectNone
}Das solltest du nicht machen, sondern du solltest die wxWidgets Definition davon verwenden.
-
@Schlangenmensch
schon wieder entfernt.
danke für die Hinweise