Seite 1 von 1

wx.Grid.GetCellValue zeigt den alten Wert an

Verfasst: Sonntag 23. Oktober 2022, 15:38
von Neu111
Hallo,
folgendes Szenario:
Ein User klickt in eine wx.Grid-Zelle, schreibt das Wort "test" hinein und drückt anschließend die Taste ENTER.
Nun möchte ich den zuvor eingegebenen Text (in diesem Fall "test") auswerten.
Ich nutze dazu das Event "EVT_GRID_CELL_CHANGING" und die Methode "GetCellValue".
Das Problem: GetCellValue ermittelt nicht den aktuellen Inhalt ("test"), sondern den Wert der davor drin stand.

Unter stackoverflow wird das Problem ähnlich beschrieben:
https://stackoverflow.com/questions/110 ... its-a-cell

Ist es wahr, dass als einfacher Lösungsansatz nur die Möglichkeit besteht, einen Button einzubauen?
D.h. der User tippt seinen Text ein, und muss anschließend mit der Maus auf einen Button drücken?
Ich fände das Handling mit der ENTER/RETURN-Taste wesentlich besser.

Haben die Experten einen anderen Lösungsansatz?
Vielen Dank.

Re: wx.Grid.GetCellValue zeigt den alten Wert an

Verfasst: Sonntag 23. Oktober 2022, 16:18
von __deets__
Kenne mich mit wx nicht wirklich aus, das war immer umstaendlich und unattraktiv in meinen Augen. Qt ist da *deutlich* maechtiger, wenn du dir das lizenzmaessig erlauben kannst, solltest du das verwenden.

Wie dem auch sei, dein SO Artikel zeigt ja auch eine weitere Moeglichkeit auf: durch Verwendung von wxGridTableBase kannst du die Daten selbst "abgreifen", und eben daran deine Programmierung festmachen.

Re: wx.Grid.GetCellValue zeigt den alten Wert an

Verfasst: Sonntag 23. Oktober 2022, 16:27
von __blackjack__
@Neu111: Es ist auch das falsche Ereignis. Das was Du da benutzt ist ja gerade dazu gedacht *vor* der Änderung was zu machen. Es gibt auch eins für *nach* der Änderung.

Re: wx.Grid.GetCellValue zeigt den alten Wert an

Verfasst: Sonntag 23. Oktober 2022, 16:44
von Neu111
__blackjack__ hat geschrieben: Sonntag 23. Oktober 2022, 16:27 @Neu111: Es ist auch das falsche Ereignis. Das was Du da benutzt ist ja gerade dazu gedacht *vor* der Änderung was zu machen. Es gibt auch eins für *nach* der Änderung.
__blackjack__ , du bist der Beste! Danke für den Denkanstoß!