Wie zu erkennen doubleClick in QTableView
Bin ich mit PyQt und zum erstellen von GUI-Anwendung. In einer Ansicht geerbt von QTableView, müssen zur Erkennung der Zeile, in der der Benutzer ausgewählt hat, wenn Sie doppelt auf eine Zeile. Die Tabelle Sortieren, aber keine Bearbeitung.
Wie mache ich es?
Hinweis - habe versucht, die doubleClicked(int) signal. Es entsteht durch die Maustasten, nicht durch Daten-Zellen, so war es nie abgefeuert. 🙁
Ian
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich nicht verstehen.
Die doubleClicked signal des QTableView hat die Signatur
Wenn Sie die Verbindung, die signalisieren, Sie sollten erhalten die richtige QModelIndex.
Keine Signale mehr:
"doubleClicked" geerbt von QAbstractItemView.
Sobald Sie den modelIndex, (von Frank ' s Kommentar oben), können Sie es verwenden, um herauszufinden, welche Zelle wurde doppelt geklickt.
Anschließend können Sie diese Zeile und col-Werte zum Zugriff auf die Tabelle.setItem(Zeile, Spalte, newdata) oder andere Tisch-Methode
Wie @regomodo sagte, Sie können einfach verbinden Sie Ihre Funktion auf der Doppel-klicken Sie auf über:
Dann, wenn Sie wissen möchten, auf welche Zeile der Benutzer doppelt geklickt, können Sie den folgenden code verwenden:
Es gibt eine Ganzzahl zurück, das der entsprechenden Zeile oder die Spalte Anzahl.
Es wird immer nur ein einziger Wert wie der Doppel-klicken Sie auf entfernen der vorherigen Selektion.
Wenn Sie einen link zu Ihrer Funktion an eine Taste oder ein anderes signal, können Sie erhalten eine Liste mit mehreren Elementen, die der Benutzer ausgewählt.
Zum Beispiel, können Sie ganz einfach abrufen einer Liste aller ausgewählten Zeilen mit diesem code:
Diese Suchanfrage wird eine Liste aller ausgewählten Zeilen (Die set-Funktion wird auch entfernen Sie alle Duplikate).
Prost!