Utilisez Qtableview avec QsqlTableModel pour remplir une table de données. Je veux trier la colonne en fonction de la sélection de l'utilisateur sur l'en-tête de la colonne.Qt Qtableview n'obtenant pas de signal pour l'élément d'en-tête en cliquant sur
J'ai essayé la manière indiquée dans QTableView sorting signal? pour obtenir le signal (obtenir l'en-tête horizontale de QTableView et connectez le signal sectionclicked (int index logique). Mais le même signal ne reçoit pas émis lorsque je clique sur en-tête de colonne.
S'il vous plaît trouver le code où la connexion se fait:
variables membre:
QHeaderView *m_horiz_header;
fichier .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)));
fonction d'emplacement pour le tri:
void class::on_sectionClicked (int logicalIndex)
{
m_horiz_header->setSortIndicator(logicalIndex, Qt::AscendingOrder);
m_table_view->sortByColumn(logicalIndex);
}
Cette fonction est pas appelé, quand la tête de colonne est cliqué.
Pouvez-vous m'aider s'il vous plaît comment faire ceci, où je me suis trompé?
Merci d'avance.
Rubrique connexe: http://stackoverflow.com/questions/24714130/qt-5-3-qtreeview-clickable-header-data – neuronet