QT中关于TableWidget中Item 现在我要加一行 第一列显示X 第二列显示X的平方根 我这里那里错了?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QT中关于TableWidget中Item 现在我要加一行 第一列显示X 第二列显示X的平方根 我这里那里错了?相关的知识,希望对你有一定的参考价值。

void xy::addRow() int row=tableWidget->rowCount(); tableWidget->insertRow(row); QTableWidgetItem *item0=new QTableWidgetItem; item0->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); tableWidget->setItem(row,0,item0); QTableWidgetItem *item1=new QTableWidgetItem; item1->text().toDouble=sqrt(item0->text().toDouble()); item1->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); tableWidget->setItem(row,1,item1); tableWidget->setCurrentItem(item0);

参考技术A 你说你错了,那么你的错误表现形式是怎样的?是没有插入?还是数据显示不正确?

我目前目测是: item1->text().toDouble=sqrt(item0->text().toDouble()); 这句错了呢。

你这句可以这么写:
item1->setText(QString::number(qSqrt(item0->text().toDouble())));

ps:我没有用你的sqrt,而是用了Qt自己的qSqrt方法。

另:如果不是这地方的错误,请追问我,再说明你的错误表现。谢谢。追问

感谢你 但我主要的错误在于在加行之后 在第一列输入数字后 第二列中没有显示出第一列的平方根 显示的结果仍然是0 我想在第一列输入后 第二列就立马显示出第一列的平方根 目测在addRow()函数中出了差错

追答

item1->text().toDouble=sqrt(item0->text().toDouble());
你的这句不是为第二列赋值的意思么?我就是想说这样赋值不太对啊,所以依然会是0;
正确的应该是:
item1->setText(QString::number(qSqrt(item0->text().toDouble())));
你试试啊

追问

语法错误修改了 但是只有main输入的显示了 自己在exe中加一行就不能自行显示结果

追答

你新加的一行中有进行过 设置值 这样的操作么?
如果没有的话,怎么会显示结果?
比如:
QTableWidgetItem *item0=new QTableWidgetItem;
item0->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter);
举个例子,你可以在上面两句后面加上一句赋值语句:
item0->setText(QString::number(100.0));

以上是关于QT中关于TableWidget中Item 现在我要加一行 第一列显示X 第二列显示X的平方根 我这里那里错了?的主要内容,如果未能解决你的问题,请参考以下文章

qt tablewidget 怎么自己增加行

QT ui->TableWidget->item(row,column)->text() 怎么取出指定行的内容

qtabelwidget怎么得到指定行和列的值

qt qt向table widget插入列数据

qt tablewidget 提取某列数据

Qt Table Widget常用操作