Qt实现单击或双击QTableWidge/View表头进行排序
Posted 林夕07
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt实现单击或双击QTableWidge/View表头进行排序相关的知识,希望对你有一定的参考价值。
先看效果图 点击一次对应列进行降序,再点击一次进行升序,分别对应图1、图2。
实现代码
构造函数中设置了一个sign以及关联对应的信号。 双击表头的信号为sectionDoubleClickClicked
m_sign = true;//设置一个标志位
// 单击表头
connect(ui.tableWidget->horizontalHeader(), &QHeaderView::sectionClicked, this, &QtTableWidgetsSort::onCustomSort);
// 双击表头信号 sectionDoubleClickClicked
槽函数实现为
void QtTableWidgetsSort::onCustomSort(int logicalIndex)
for (size_t i = 0; i < ui.tableWidget->rowCount() - 1; ++i)
for (size_t j = 0; j < ui.tableWidget->rowCount() - i - 1; ++j)
if(m_sign == (ui.tableWidget->item(j,logicalIndex)->text() >
ui.tableWidget->item(j + 1, logicalIndex)->text()))
for (size_t k = 0; k < ui.tableWidget->columnCount(); ++k)
QTableWidgetItem item1 = *ui.tableWidget->item(j, k);
ui.tableWidget->item(j, k)->setText(ui.tableWidget->item(j + 1, k)->text());
ui.tableWidget->item(j + 1, k)->setText(item1.text());
m_sign = !m_sign;
开发者涨薪指南
48位大咖的思考法则、工作方式、逻辑体系
以上是关于Qt实现单击或双击QTableWidge/View表头进行排序的主要内容,如果未能解决你的问题,请参考以下文章