如何插入其他QTableWidget

时间:2019-09-02 02:05:28

标签: c++ qt

我正在添加一些值,以将值从另一个UI发送到主UI(即TableWidget UI)。

问题是,尽管我有插入代码,但我无法为QTableWidgetItem插入任何其他行。

有人可以帮助我还是让我知道我在哪里做错了。

void MainUI::appendData()

    int len = container.count();
    this->setRowCount(len);

     for (int i=0; i<len;i++){
    QTableWidgetItem *item = new QTableWidgetItem(QString::number(container[i].portnumber));
            this->setItem(i, 0, item);
            item = new QTableWidgetItem(container[i]._state);
            this->setItem(i, 1, item);
            item = new QTableWidgetItem(QString::number(container[i].pwmport));
            this->setItem(i, 2, item);
            item = new QTableWidgetItem(QString::number(container[i].dutycycle));
            this->setItem(i, 3, item);
            item = new QTableWidgetItem(QString::number(container[i].frequency));
            this->setItem(i, 4, item);
    }
}

1 个答案:

答案 0 :(得分:0)

以下内容有帮助吗?

#include <QApplication>
#include <QTableWidget>
#include <QHeaderView>

struct Item {
    QString portnumber;
    QString pwmport;
    QString dutycycle;
    QString frequency;
};

int main(int argc, char *argv[]) {
    QApplication a(argc, argv);

    int rows = 5;
    QList<Item> container;
    for (int row = 0; row < rows; row++) {
       Item item;
       item.portnumber = QString::number(row);
       container.append(item);
    }

    QStringList labels{"portnumber", "pwmport", "dutycycle", "frequency"};
    QTableWidget *table = new QTableWidget(rows, labels.count());
    table->setHorizontalHeaderLabels(labels);
    table->verticalHeader()->hide();

    for(int i = 0; i < rows; i++) {
        table->setItem(i, 0, new QTableWidgetItem(container[i].portnumber));
        table->setItem(i, 1, new QTableWidgetItem(container[i].pwmport));
        table->setItem(i, 2, new QTableWidgetItem(container[i].dutycycle));
        table->setItem(i, 3, new QTableWidgetItem(container[i].frequency));
    }
    table->show();
    return a.exec();
}