想要使用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)));
本文探讨了QTableWidget在启用排序功能后,使用clearContents()清空表格时遇到的问题。提供了关闭排序功能并手动实现排序的替代方案,确保清空操作的完整性。
465

被折叠的 条评论
为什么被折叠?



