QTable中点击Header实现按列排序的方法

我们知道,在可视化的数据库软件中,一般都支持点击列名然后使该列下的值进行排序。那么在QT下,我们该如何实现这种效果呢?

查看QT文档的QHeaderView类,发现其中有pressed和clicked信号,然后在QTableWidget的父类QTableView中可以看到sortByColumn()这个API,是按照某一列进行排序的,于是可以自定义一个槽函数sortSlot(),如下定义:

void sortSlot(){

ui.tableWidget_4->sortByColumn(index,Qt::AscendingOrder);//参数index表示排序的列数,后面的参数表示是升序还是降序

}

构造函数里:

connect(ui.tableWidget_4->horizontalHeader(),SIGNAL(sectionPressed(int)),this,SLOT(testSlot(int)));

你可能感兴趣的:(header)