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

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

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

Пожалуйста, найдите код, где выполняется подключение:

Переменная участника:

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

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

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


person rafeequenk    schedule 14.10.2010    source источник
comment
Связанная тема: stackoverflow.com/ вопросы/24714130/   -  person eric    schedule 16.02.2015


Ответы (1)


Я понял причину, по которой не удалось подключиться к сигналу.

имя аргумента не должно упоминаться при подключении.

connect(m_horiz_header, SIGNAL(sectionClicked(int)), this, SLOT(on_sectionClicked(int)));

изменив приведенный выше код таким образом, он сработал.

person rafeequenk    schedule 14.10.2010