Qt qtablewidget添加行指针?

时间:2011-04-25 20:25:17

标签: c++ qt

我有一个包含~12个tablewidgets的程序,如何在一个函数中设置一个函数来为所有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);
}

2 个答案:

答案 0 :(得分: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);
    }
}

答案 1 :(得分: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);

}