Qt Qtableview не получает сигнал для щелчка по элементу заголовка

Я использую Qtableview с QsqlTableModel для заполнения данных таблицы. Я хочу отсортировать столбец на основе выбора пользователя в заголовке столбца.

Я пробовал способ, упомянутый в Сигнал сортировки QTableView? для получения сигнала (получить горизонтальный заголовок из QtableView ] и подключить сигнал sectionclicked (логический индекс int) . Но тот же сигнал не излучается, когда я нажимаю на заголовок столбца.

Найдите код, в котором выполняется соединение:

Переменная-член:

QHeaderView *m_horiz_header;

.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 ) ));

Функция слота для сортировки:

void class::on_sectionClicked ( int logicalIndex ) 
{
    m_horiz_header->setSortIndicator(logicalIndex, Qt::AscendingOrder);
    m_table_view->sortByColumn(logicalIndex);
}

Эта функция не вызывается при нажатии на заголовок столбца.

Не могли бы вы помочь мне, как это сделать, где я ошибся?

8
задан SurvivalMachine 2 September 2018 в 12:55
поделиться