问:在QT C ++中,如何从TableWidget保存文件中的选定行

时间:2019-01-11 11:28:33

标签: c++ qt

这是用于将表中所有数据保存在test.txt文件中的代码。     我希望通过test.txt文件中的复选框选中所有选定的数据。我在这里尝试将所有表数据添加到.txt文件中。 {

  // Table Widget 
m_pTableWidget = new QTableWidget(this);
m_pTableWidget->setRowCount(3);
m_pTableWidget->setColumnCount(3);
m_TableHeader<<"A"<<"B"<<"C";
m_pTableWidget->setHorizontalHeaderLabels(m_TableHeader);
     // Insert Data into Table
m_pTableWidget->setItem(0, 1, new QTableWidgetItem("JFX1234567"));
m_pTableWidget->setItem(1, 1, new QTableWidgetItem("JFY1234567"));
      // Add checkBox
QTableWidgetItem *item1 = new QTableWidgetItem("1");
item1->setCheckState(Qt::Checked);
m_pTableWidget->setItem(0, 0, item1);
QTableWidgetItem *item2 = new QTableWidgetItem("2");
item2->setCheckState(Qt::Checked);
m_pTableWidget->setItem(1, 0, item2);

//  Load data in Qstring
QString textData;
int rows = m_pTableWidget->rowCount();
int columns = m_pTableWidget->columnCount();

for (int i = 0; i < rows; i++)
{
    for (int j = 0; j < columns; j++)
    {
        textData += m_pTableWidget->data(m_pTableWidget->setItem(i,j)).toString();
    }
}
QFile txtFile("test.txt");    
if(txtFile.open(QIODevice::WriteOnly | QIODevice::Truncate)) {

QTextStream out(&txtFile);
out << textData;

txtFile.close();

QFile txtFile("test.txt");    

if(txtFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
{
QTextStream out(&txtFile);
out << textData;
txtFile.close();
}

但是,我不知道为什么不能在Qstring中保存数据。我遇到了很多错误。

1 个答案:

答案 0 :(得分:0)

if (m_pTableWidget->item(i,j)->checkState() == Qt::Checked){
    textData += m_pTableWidget->item(i,j)->text();
}

QTableWidgetItem *QTableWidget::item(int row, int column) const
QString QTableWidgetItem::text() const