2015-10-29 36 views
1

我有Qtable和文件叫input.txt如何將數據從文件中放入QTable Widget項目?

我想通過從input.txt讀取顯示Qtable小部件上的數據。

該表格有9行和9列。我試着製作一個QTable widget項目,並使用for循環將數據放入其中。但無法得到它的工作。

這裏是我的代碼試圖

MainWindow::MainWindow(QWidget *parent) : 
QMainWindow(parent), 
ui(new Ui::MainWindow){ 
ui->setupUi(this); 
int n = 0; 

QTableWidgetItem *item = new QTableWidgetItem; 
item->setText(QString("1")); 

bool check = false; 

while(!check){ 

    for (int row = 0; row < 9; ++row) { 
     for (int col = 0; col < 9; ++col) { 

     } 

     item = new QTableWidgetItem(); 
     item->setText((std::to_string(n))); 
     ui->tableWidget->setItem(row,col,item); 
     n++; 

     if(row ==8 , col ==8){ 
      check = true; 
    } 

} 

}

這只是一個演示來檢查,如果我將號碼添加到每個單元格。

+0

您能否展示您嘗試過的代碼並解釋您使用它的問題?那我們可以幫你解決這個問題。 – ajshort

+0

@ajshort檢查編輯。謝謝 – user2775042

回答

1

有幾件事情,你必須改變。首先,設置行數和列數的表格,使用

QTableWidget::setColumnCount(int columnCount) 
QTableWidget::setRowCount(int rowCount) 

然後,它總是使用更安全組大小爲您的迭代,以確保你不走「出界」。通過讓他們:

int QTableWidget::columnCount() 
int QTableWidget::rowCount() 

最後構建QTableWidgetItem你必須使用QString代替std::string(見docs)。

這裏是一個最低例子給你:

QTableWidget* table_widget = new QTableWidget(this); 

table_widget->setColumnCount(9); 
table_widget->setRowCount(9); 

for(int r = 0; r < table_widget->rowCount(); ++r) { 
    for(int c = 0; c < table_widget->columnCount(); ++c) { 
     table_widget->setItem(r, c, new QTableWidgetItem(QString::number(r+c))); 
    } 
} 

你可能想看看these tutorials。他們是一個很棒的資源,可以很快熟悉很多基本功能。你也可以在那裏找到關於how to parse files in Qt的答案。

快樂編碼!

相關問題