我搜索了答案,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();
程序崩溃了。 任何想法如何从单元格中查看文本?
所有code.Constructor:
{
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)));
}
}
槽
void MainWindow::on_tableWidget_cellDoubleClicked(int row, int column)
{
ui->pushButton->setText( QString("%1").arg(row));
ui-> tableWidget->setItem(row-1, 1, new QTableWidgetItem("clicked"));
QString str;
QTableWidgetItem * itm = ui->tableWidget->item( 3, 1 );
str = itm->text();
}
我试图制作另一个程序。只需要一个简单的表格并从单元格中取出文本:
ui->setupUi(this);
ui->tableWidget->setItem(1,1,new QTableWidgetItem("lol"));
QString str= ui->tableWidget->item(1,1)->text();
。完全相同的错误
答案 0 :(得分:2)
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();
对我有用,当rowCount或columntCount为0 时,我只能崩溃程序。