Qt tablewidget добавить указатель строки? - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть программа с ~ 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);
}

Ответы [ 2 ]

0 голосов
/ 26 апреля 2011

Не нужно использовать указатель ссылки.

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

}

0 голосов
/ 26 апреля 2011

Если у вас есть массив или вектор со всеми вашими виджетами, вы можете сделать

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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...