我知道如何使用QTableview或QTablewidget 但是如果我必须创建一个包含30,000行的表 似乎QTableview或QTablewidget没用; 那么如何使用Qt创建表格小部件?
答案 0 :(得分:2)
QTableView或QTableWidget如何无效?
我使用了QTableWidget。此代码显示30000行;
编辑:我在每个单元格中插入了一些数据
table.h
#ifndef TABLE_H
#define TABLE_H
#include <QDialog>
#include <QTableWidgetItem>
#include <QTableWidget>
#include <QHBoxLayout>
class Table : public QDialog {
Q_OBJECT
public:
explicit Table(QWidget *parent = 0);
~Table();
private:
QTableWidget *table;
};
#endif // TABLE_H
table.cpp
#include "table.h"
#include "ui_table.h"
Table::Table(QWidget *parent) : QDialog(parent) {
//doing this creates the table, then you set the row count
table = new QTableWidget;
table->setRowCount(30000);
table->setColumnCount(1);
//QTableWidgetItem puts data into each cell. Just an example
for (int i = 0; i < 30000; i++){
for (int j = 0; j < 1; j++) {
QTableWidgetItem *item = new
QTableWidgetItem(tr("%1").arg(pow(i, j+1)));
table->setItem(i, j, item);
}
}
QHBoxLayout *layout = new QHBoxLayout;
layout->addWidget(table);
setLayout(layout);
}
Table::~Table() {
delete table;
}
的main.cpp
#include "table.h"
#include <QApplication>
int main(int argc, char *argv[]) {
QApplication a(argc, argv);
Table *window = new Table;
window->show();
return a.exec();
}
答案 1 :(得分:1)
您可以使用QTableView,为它创建自己的模型。无需在任何时刻为用户显示所有30000行。