Ich habe eine kurze Frage. Ich möchte Klickereignisse in einer Baumstruktur mit unterschiedlichen Verhaltensweisen abfangen, je nachdem, auf welche Spalte geklickt wird. Ich glaube, es gibt ein Signal, das den Modellindex passiert ... aber wie identifiziert man die Spalte? Danke für die Hilfe.QT QTreeView klicken Ereignis auf spezifische Spalte
Antwort
Überprüfen Sie das in QTreeView verwendete QItemSelectionModel, um das Auswahl- oder Klickereignis in einer Zeile oder Spalte zu behandeln. Machen Sie Ihre Baumansicht auswählbar und verwenden Sie eines der Standardsignale. Sie haben 3 verschiedenes Signal ein Click-Ereignis zu behandeln:
void currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
void currentColumnChanged(const QModelIndex ¤t, const QModelIndex &previous)
void currentRowChanged(const QModelIndex ¤t, const QModelIndex &previous)
das Signal mit einem benutzerdefinierten Schlitz Griff, und verwendet QModelIndex Parameter die aktuelle Zeile und Index zu erhalten. Beispiel:
void MainWindow::elementClicked(const QModelIndex& current, const QModelIndex& previous) {
const int row = current.row();
const int column = current.column();
qDebug() << "Clicked at " << row << column;
}
Danke. Was meinst du: Überprüfen Sie QItemSelectionModel im QTreeView verwendet? –
Die Signale, die ich angehängt habe, sind Signale der Klasse QItemSelectionModel. QTreeView verfügt über ein Standard-QItemSelectionModel, das jedes in der Struktur ausgewählte/deaktivierte Element benachrichtigt. So überprüfen Sie die: http://doc.qt.io/qt-5/qitemselectionmodel.html und http://doc.qt.io/qt-5.7/qtreeview-members.html – mohabouje
- 1. Jedes spezifische Ereignis zum Klicken auf den Button der Combobox
- 2. Qt - QPushButtons anstelle von QTreeView Elemente
- 3. wpf datagrid auf klicken Ereignis
- 4. Ereignis auf Glypicon klicken
- 5. Footable Filter auf spezifische Spalte
- 6. programmatisch klicken Sie auf Spalte in Highcharts
- 7. auf klicken Ereignis auf .swf
- 8. AutoCompleteTextView klicken Ereignis auf Android
- 9. Auf klicken Ereignis des Bildknopfes
- 10. Auf klicken Ereignis in GridView
- 11. Detect klicken auf Hintergrund Ereignis
- 12. Klicken Sie auf Option Ereignis
- 13. Klicken Sie auf Ereignis für Textbox
- 14. Klicken Sie auf bestimmte Spalte allein
- 15. klicken Ereignis auf td nicht funktioniert
- 16. Gibt es Qt-spezifische Profiler?
- 17. QTreeView/QSortFilterProxyModel
- 18. JQuery Klicken Sie auf Ereignis nicht auf Knopfdruck klicken
- 19. Spezifische Spalte ignorieren auf pg_dump/pg_restore
- 20. For Schleife läuft auf spezifische Spalte
- 21. klicken Sie auf Ereignis auf jqueryui Dialog
- 22. INNERJOIN + SELECT spezifische Spalte
- 23. Sum ListView spezifische Spalte
- 24. OpenCSV lesen spezifische Spalte
- 25. Bootstrap - resize spezifische Spalte
- 26. Qt - Erweitern Sie QTreeView mit einem einzigen Klick?
- 27. Qt Mehrfachschlüssel Combo Ereignis
- 28. qt: pyqt: QTreeView intern Drag & Drop fast arbeiten ... gezogene Element
- 29. qt QComboBox setView zu QTreeView nicht tun kann setCurrentIndex
- 30. Eingabe Taste klicken Ereignis
Ich denke, ich fand die Antwort .. index.column() oder? –