【发布时间】:2010-10-14 05:13:17
【问题描述】:
我正在使用 Qtableview 和 QsqlTableModel 来填充表格数据。我想根据用户在列标题上的选择对列进行排序。
我尝试了QTableView sorting signal? 中提到的获取信号的方式(从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);
}
单击列标题时,不会调用此函数。
你能帮我怎么做吗,我哪里出错了?
【问题讨论】:
标签: qtableview