2011-04-25 86 views
0

我有一個約12個tablewidgets的程序,我如何設置一個函數在一個函數中爲所有12個表添加行?Qt tablewidget添加行指針?

main{ 

    addRow(tablewidget1); 
    addRow(tablewidget2); 
    // etc 
} 

addRow(*tablewidget){ 

    int row = tablewidget->rowCount(); 

    tablewidget->insertRow(row); 

    QTableWidgetItem *item0 = new QTableWidgetItem; 
    item0->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); 
    tablewidget->setItem(row, 0, item0); 

    QTableWidgetItem *item1 = new QTableWidgetItem; 
    item0->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); 
    tablewidget->setItem(row, 1, item1); 
} 
+0

如果在同一數據添加到了同樣的觀點,你可以考慮使用一個單一的QStandardItemModel + QTableViews而不是QTableWidget的。 – 2011-04-25 21:21:46

回答

0

如果你有一個數組或在所有小部件的載體,你可以做

void main() 
{ 
    std::vector<tablewidgets> widgets; 

    // Some initialization code the widgets. 

    addMyWidgets(widgets); 
} 

void addMyWidgets(std::vector<tablewidget>& widgets) 
{ 
    for(std::vector<tablewidget>::iterator it = widgets.begin(), end = widgets.end(); 
     it != end; 
     ++it) 
    { 
     addRow(*it); 
    } 
} 
+0

回答自己:),謝謝! – JonnyCplusplus 2011-04-25 20:48:20

0

所需,不使用參考指針..

main{ 

addRow(tablewidget1); 
addRow(tablewidget2); 
// etc 

}

addRow(QTableWidget的* tablewidget){

int row = tablewidget->rowCount(); 

tablewidget->insertRow(row); 

QTableWidgetItem *item0 = new QTableWidgetItem; 
item0->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); 
tablewidget->setItem(row, 0, item0); 

QTableWidgetItem *item1 = new QTableWidgetItem; 
item0->setFlags(Qt::ItemIsSelectable|Qt::ItemIsEnabled); 
tablewidget->setItem(row, 1, item1); 

}