wx.Grid.GetCellValue zeigt den alten Wert an

Plattformunabhängige GUIs mit wxWidgets.
Antworten
Neu111
User
Beiträge: 69
Registriert: Dienstag 10. März 2020, 19:02

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.
__deets__
User
Beiträge: 14539
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
Benutzeravatar
__blackjack__
User
Beiträge: 13102
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Neu111
User
Beiträge: 69
Registriert: Dienstag 10. März 2020, 19:02

__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ß!
Antworten