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?

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top