qt 下tablewidget 中要单独使一列不能编辑怎么办???最好能用一个button 控件控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt 下tablewidget 中要单独使一列不能编辑怎么办???最好能用一个button 控件控制相关的知识,希望对你有一定的参考价值。

参考技术A 修改该列item的flags. 例如:

#include <QApplication>
#include <QTableWidget>
#include <QTableWidgetItem>
int main(int argc, char **argv)

QApplication app(argc, argv);
int col = 0;
QTableWidget *table = new QTableWidget(5, 3);
table->setItem(0, col, new QTableWidgetItem(QString("test")));
int i;
for(i = 0; i < table->rowCount(); i++)
QTableWidgetItem *item = table->item(i, col);
if(item)
item->setFlags(item->flags() & (~Qt::ItemIsEditable));
else
item = new QTableWidgetItem;
item->setFlags(item->flags() & (~Qt::ItemIsEditable));
table->setItem(i, col, item);


table->show();
return app.exec();
本回答被提问者采纳
参考技术B 一行中间包含一个控件textbox 不使用javascript 问题补充:要可以添加多行 点然后在页面的前台aspx文件里用<%=Session["str"]%>来显示这些行,注意将它,追问

是qt 下,亲。。

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 中要单独使一列不能编辑怎么办???最好能用一个button 控件控制的主要内容,如果未能解决你的问题,请参考以下文章

qt qt向table widget插入列数据

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

qt tablewidget 提取某列数据

在 QT/Python 中将字符串作为项目添加到 tableWidget

tablewidget第一行没有分割线

qt中使用触摸手势,如何使得点击与滑屏共存,因为存在tablewidget控件,