Qt tablewidget添加行指针

Qt tablewidget add row pointer?

本文关键字:指针 添加行 tablewidget Qt      更新时间:2023-10-16

我有一个有~12个表部件的程序,我怎么能设置一个函数来添加行到一个函数中的所有12个表?

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);
}

如果你有一个数组或矢量,你可以做

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);
    }
}

不需要使用引用指针…

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);

}