2010-10-14 47 views
7

我正在使用Qtableview和QsqlTableModel來填充表數據。我想根據列標題上的用戶選擇對列進行排序。Qt Qtableview沒有獲取標題項目點擊的信號

我試着在QTableView sorting signal?用於獲取信號(從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); 
} 

此功能沒有得到調用,點擊列標題時。

你能幫我嗎?如何做到這一點,我出錯了?

在此先感謝。

+0

相關主題:http://stackoverflow.com/questions/24714130/qt-5-3-qtreeview-clickable-header-data – neuronet 2015-02-16 15:40:54

回答

7

我得到了信號連接失敗的原因。

參數名稱不應在連接中提及。

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

通過修改上面的代碼就像這樣,它的工作。