QTTable使用例子

本文通过一个实际例子展示了如何使用QTTable来创建一个表格,并详细说明了如何实时修改表格内的值,以此来动态调整系统参数,实现灵活的参数配置功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成一个表格,修改表格内值来改变系统参数。

	tb_Eps = new QTableWidget(4, 3);//表格为4*3
    //使表格平铺在界面
	tb_Eps-> horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//
	tb_Eps->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch);
    
    //设置表头
    QStringList header;
	header << QStringLiteral("误差类型") << QStringLiteral("默认值") << QStringLiteral("修改值");
	tb_Eps->setHorizontalHeaderLabels(header);
	tb_Eps->setItem(0, 0, new QTableWidgetItem("CEpsilonU"));
	tb_Eps->setItem(1, 0, new QTableWidgetItem("CTASEpsilonU"));
	tb_Eps->setItem(2, 0, new QTableWidgetItem("CAreaEpsilonU"));
	tb_Eps->setItem(3, 0, new QTableWidgetItem("CPerimeterEpsilonU"));
	error_init();//初始化默认值
	tb_Eps->setItem(0, 2, new QTableWidgetItem(str_CEpsilonU));
	tb_Eps->setItem(1, 2, new QTableWidgetItem(str_CTASEpsilonU));
	tb_Eps->setItem(2, 2, new QTableWidgetItem(str_CAreaEpsilonU));
	tb_Eps->setItem(3, 2, new QTableWidgetItem(str_CPerimeterEpsilonU));

    //将前两列设置为灰色不可修改   flag :0为灰色不可修改
	for (int i = 0; i != 4; i++)
		for (int j = 0; j != 2; j++)
		{
			tb_Eps->item(i, j)->setFlags(0);

		}
	hLayout5->addWidget(tb_Eps);

    //singal参数只写类型
    //itemChanged当数据发生改变时候触发
	connect(tb_Eps, SIGNAL(itemChanged(QTableWidgetItem *)), this, SLOT(on_itemChanged(QTableWidgetItem *)));

    //对应的槽函数
void TASAttrCompareMainFrm::on_itemChanged(QTableWidgetItem *item)
{
	if (item->text().toDouble() <= 0)
	{
		item->setBackground(QBrush(QColor(255, 0, 0)));//设置表格颜色
		return;
	}
	item->setBackground(QBrush(QColor(0, 255, 0)));
	switch (item->row())
	{
	case 0:
		CEpsilonU =  item->text().toDouble();
		break;
	case 1:
		CTASEpsilonU= item->text().toDouble();
		break;
	case 2:
		CAreaEpsilonU= item->text().toDouble();
		break;
	case 3:
		CPerimeterEpsilonU=  item->text().toDouble();
		break;
	default:
		break;
	}
}
QString tabeDate[table->rowCount()][table->clomnCount()];
for(int i=0; i<table->rowCount(); i++)
{
    for(int j=0; j<table->clomnCount(); j++)
    {
        tabeDate[i][j] = table->item(i, j)->text();
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值