Sto usando Qtableview con QsqlTableModel per popolare i dati di una tabella. Voglio ordinare la colonna in base alla selezione dell'utente sull'intestazione della colonna.Qt Qtableview non riceve il segnale per l'elemento di intestazione facendo clic su
Ho provato il modo di cui QTableView sorting signal? per ottenere il segnale (ottenere l'intestazione orizzontale da QtableView e collegare segnale sectionclicked (int logico index). Ma lo stesso segnale è sempre emesso quando scatto sopra colonna.
si prega di trovare il codice in cui viene fatto il collegamento: variabile
Iscritto:
QHeaderView *m_horiz_header;
file cpp
m_sqltablemodel->setTable(tabel_name);
m_sqltablemodel->setEditStrategy(QSqlTableModel::OnManualSubmit);
m_sqltablemodel->select();
m_horiz_header= m_table_view->horizontalHeader();
connect(m_horiz_header, SIGNAL(sectionClicked (int logicalIndex)),
this, SLOT(on_sectionClicked (int logicalIndex)));
funzione Slot per l'ordinamento:
void class::on_sectionClicked (int logicalIndex)
{
m_horiz_header->setSortIndicator(logicalIndex, Qt::AscendingOrder);
m_table_view->sortByColumn(logicalIndex);
}
questa funzione non è sempre chiamato, quando intestazione di colonna viene cliccato.
Potete per favore aiutarmi come fare questo, dove ho sbagliato?
Grazie in anticipo.
Thread correlato: http://stackoverflow.com/questions/24714130/qt-5-3-qtreeview-clickable-header-data – neuronet