想要使用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)));