QT笔记——QTableWidget点击表头排序问题 数据消失

在QTableWidget 点击表头排序后 发现重新加载进来的数据消失或者很多空白 解决方法

排序方法:

void DesignProductWidget::DesignProductWidget()
{
	ui.tableWidget->setSortingEnabled(true);
	ui.tableWidget->horizontalHeader()->setSortIndicatorShown(true);
	connect(ui.tableWidget->horizontalHeader(), SIGNAL(sectionClicked(int)), this,     	SLOT(on_tablewidget_sectionClicked(int)));
}


void DesignProductWidget::on_tablewidget_sectionClicked(int column)
{
	if (m_SortUporDown)
	{
		ui.tableWidget->sortItems(column, Qt::AscendingOrder);
		m_SortUporDown = false;
	}
	else
	{
		ui.tableWidget->sortItems(column, Qt::DescendingOrder);
		m_SortUporDown = true;
	}

}

初始数据:
在这里插入图片描述
点击排序之后,再次 加载数据图:
在这里插入图片描述
BUG:点击排序后,数据消失了,

ui.tableWidget->setSortingEnabled(true);

解决办法:

在重新加载数据前  关闭我们的 排序:
ui.tableWidget->setSortingEnabled(false);

在加载完数据后,我们重新进行打开我们的排序
ui.tableWidget->setSortingEnabled(true);

如:

		ui.tableWidget->setSortingEnabled(false);
		//插入数据
		for (int i = 0; i < 10; i++)
		{
			for (int j = 0; j < 3; j++)
			{
				ui.tableWidget->setItem(i, j, new QTableWidgetItem(QString("%1%2").arg(i + 1).arg(j + 1)));
			}
		}
		ui.tableWidget->setSortingEnabled(true);
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值