想要使用qtablewidget的表头点击排序功能。当使用了qtablewidget的setSortingEnabled()函数时,
如ui->tableWidget->setSortingEnabled(true);
点击表头确实是能排序(qt5.9.6版本),但是如果在点击了表头排序后,再调用清空表格内容的函数,
如:ui->tableWidget->clearContents();
表格就会出现部分内容被清空,部分内容没被清空!并且重复调用clearContents()函数也无法再将未清空内容清除!
以上问题未能解决。以下不使用setSortingEnabled(),给出代替方法,点击表格头可以对表格进行排序,并且再调clearContents()也不会出现只清除部分,不清除全部情况。
ui->tableWidget->setSortingEnabled(false); //设置为false,或者直接不调用setSortingEnabled
ui->tableWidget->horizontalHeader()->setSortIndicatorShown(true);
ui->tableWidget->horizontalHeader()->setSortIndicator(0,Qt::DescendingOrder);
connect(ui->tableWidget->horizontalHeader(),SIGNAL(sectionClicked(int)),ui->tableWidget,SLOT(sortByColumn(int)));