QTableView señal de clasificación?
-
28-09-2019 - |
Pregunta
utilizo QTableView
+ QStandardItemModel
para mostrar algunos datos (datos almacenados en alguna otra estructura de datos), y este punto de vista tabla es sortable .
Ya que se puede ordenar, al ordenar este modelo, que también es necesario para cambiar el orden de los datos almacenados. Trato de poner en práctica una ranura para la señal de la clasificación, pero no sé qué señal se emite cuando se hace clic en el encabezado de iniciar la misma clasificación.
Me trató la señal se ha hecho clic, pero que sólo ha emitido para la fila de datos, no para el headerData.
¿Qué debo hacer si quiero hacer otra cosa, mientras que la clasificación de la QtableView
+ QStandardItemModel
?
Solución
La cabecera de la vista se puede obtener
QHeaderView * QTableView::horizontalHeader () const
Ahora, con la QHeaderView
obtenido, se puede conectar una ranura a la señal,
void QHeaderView::sectionClicked ( int logicalIndex ) [signal].
A partir de la documentación de Qt 4.5, Esta señal se emite cuando se hace clic en una sección. índice lógico de la sección se especifica por logicalIndex.Note que la señal sectionPressed también se emitirá.
Espero que ayuda.
Otros consejos
La vista Header mencionado anteriormente tiene sortIndicatorChanged(int, Qt::SortOrder)
señal de lo que podría ser más inteligente para utilizarlo
Además, es posible que desee echar un vistazo a QSortFilterProxyModel
Más detalles aquí http://doc.qt.io/qt-4.8/qsortfilterproxymodel. html # detalles