为什么可以';我不能从QTableWidget单元格中获取文本吗?
我已经搜索了答案,并且为什么可以';我不能从QTableWidget单元格中获取文本吗?,qt,cell,qtablewidget,Qt,Cell,Qtablewidget,我已经搜索了答案,并且ui->tableWidget->item(row,col)->text()似乎是答案。 现在,在我的代码中,我有: ui-> tableWidget->setItem(row-1, 1, new QTableWidgetItem("clicked")); 这个很好用。单击单元格时,将显示“单击”消息。但是,当我添加以下内容时: QString str; QTableWidgetItem * itm = ui->tableWidget->item(
ui->tableWidget->item(row,col)->text()代码>似乎是答案。
现在,在我的代码中,我有:
ui-> tableWidget->setItem(row-1, 1, new QTableWidgetItem("clicked"));
这个很好用。单击单元格时,将显示“单击”消息。但是,当我添加以下内容时:
QString str;
QTableWidgetItem * itm = ui->tableWidget->item( 3, 1 );
str = itm->text();
程序崩溃了。
你知道我怎样才能从手机里看到文字吗
所有代码。构造函数:
{
ui->setupUi(this);
QDate date = QDate::currentDate();
QString dateString = date.toString();
QFont myFont;
QFontMetrics font_meter(myFont);
int line_width=0;
ui->label->setText(dateString);
QFile file(":/input.txt");
if(!file.open(QIODevice::ReadOnly))
{
QMessageBox::information(0,"info",file.errorString());
}
QTextStream in(&file);
QStringList headerLabels;
QStringList rowLabels;
QStringList rowContents;
headerLabels << "Tasks to do" ;
int row_count=0;
while (true)
{
QString line = in.readLine();
if (line.isNull())
{
file.close();
break;
}
else
{
row_count++;
rowLabels.append(QString("%1").arg(row_count));
rowContents.append(line);
if( font_meter.width(line)>line_width)
{
line_width=font_meter.width(line);
}
}
}
ui->tableWidget->setRowCount(row_count);
ui->tableWidget->setVerticalHeaderLabels(rowLabels);
ui->tableWidget->setColumnCount(1);
// ui->tableWidget->setCellWidget();
for(int i=0;i<row_count;i++)
{
ui-> tableWidget->setItem(i-1, 1, new QTableWidgetItem(rowContents.at(i)));
}
}
我尝试制作另一个程序。只需使用一个简单的表格并从单元格中提取文本:
ui->setupUi(this);
ui->tableWidget->setItem(1,1,new QTableWidgetItem("lol"));
QString str= ui->tableWidget->item(1,1)->text();
.完全一样的错误
ui->setupUi(this);
ui->tableWidget->setRowCount(1);
ui->tableWidget->setColumnCount(1);
ui->tableWidget->setItem(0, 0, new QTableWidgetItem("Hello World!"));
QTableWidgetItem *temp = ui->tableWidget->item(0, 0);
QString str = temp->text();
对我来说,我只在行数或列数为0时才使程序崩溃你能为初学者共享更多代码和回溯吗?你确定ui->tableWidget->item(…)
返回有效项吗?如果指定的行和列上没有项,则返回0。对空项调用itm->text()
,将导致segfault。
ui->setupUi(this);
ui->tableWidget->setRowCount(1);
ui->tableWidget->setColumnCount(1);
ui->tableWidget->setItem(0, 0, new QTableWidgetItem("Hello World!"));
QTableWidgetItem *temp = ui->tableWidget->item(0, 0);
QString str = temp->text();