我正在添加一些值,以将值从另一个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);
}
}
答案 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();
}