在 Qt 的 QTableWidget 中,默认情况下,列是不可排序的。但是你可以通过设置 QHeaderView 的 setSortIndicator() 函数来实现列的排序功能。
下面是一个示例代码,演示了如何设置 QTableWidget 的列可排序:
- // 创建 QTableWidget 对象
- QTableWidget *tableWidget = new QTableWidget();
-
- // 设置表格的列数和行数
- tableWidget->setColumnCount(3);
- tableWidget->setRowCount(5);
-
- // 设定表头
- QStringList headerLabels;
- headerLabels << "Column 1" << "Column 2" << "Column 3";
- tableWidget->setHorizontalHeaderLabels(headerLabels);
-
- // 允许列排序
- tableWidget->setSortingEnabled(true);
-
- // 设置列排序指示器的默认状态,这里设置第一列为升序排序
- tableWidget->horizontalHeader()->setSortIndicator(0, Qt::AscendingOrder);
- tableWidget->horizontalHeader()->setSortIndicatorShown(true);
-
- // 添加数据到表格中...
- // 省略代码,你可以根据需要插入数据行
-
- // 显示表格
- tableWidget->show();
在上述示例代码中,首先创建了一个 QTableWidget 对象,并设置了列数和行数。然后使用 setHorizontalHeaderLabels() 函数设置表头的文本标签。接下来调用 setSortingEnabled(true) 来启用列排序功能。然后使用 setSortIndicator() 函数设置了默认的列排序指示器的状态,这里设置第一列为升序排序。最后,你可以根据需要添加数据到表格中,并通过 show() 函数显示表格。
通过以上步骤,你可以使 QTableWidget 的列可排序。请注意,这只会在用户点击表头时触发排序,而不是在代码中自动触发排序。