3 Stimmen

Erkennung der Zeilenauswahl in wxGrid

Ich möchte benachrichtigt werden, wenn ein Benutzer die gesamte Zeile in einem wxGrid auswählt, aber ich sehe kein Ereignis, das dies behandelt. Wie kann ich das am besten machen?

1voto

tom10 Punkte 63374

Sie können dies mit EVT_GRID_RANGE_SELECT tun und dann überprüfen, ob der Bereich eine einzelne Zeile ist, wenn der Handler aufgerufen wird.

Zum Beispiel setzen Sie in der GridSimple.py wxPython-Demo die Zeile in SimpleGrid.__init__

    self.Bind(gridlib.EVT_GRID_RANGE_SELECT, self.OnSelectRange)

Und fügen Sie dann hinzu, um zu sehen, welche Zellen ausgewählt wurden.

def OnSelectRange(self, evt):
    print "on select range", evt.GetTopLeftCoords(), evt.GetBottomRightCoords()

Daraus können Sie bestimmen, ob die Auswahl eine ist, die Sie interessiert.

1voto

Eigentlich habe ich es herausgefunden. Es gibt Ereignisse wie EVT_GRID_LABEL_LEFT_CLICK und dann überprüfe ich event.GetCol() == -1, um sicherzustellen, dass der Klick auf eine ganze Zeile erfolgt, nicht auf eine ganze Spalte.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X