如何将文件中的数据放入 QTable Widget Item 中?
How to put data into a QTable Widget Item from a file?
我有 Qtable 和名为 input.txt
的文件
我正在尝试通过读取 input.txt.
在 Qtable 小部件上显示数据
table 有 9 行和 9 列。我尝试制作一个 QTable 小部件项目并使用 for 循环将数据放入其中。但无法让它工作。
这是我试过的代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
int n = 0;
QTableWidgetItem *item = new QTableWidgetItem;
item->setText(QString("1"));
bool check = false;
while(!check){
for (int row = 0; row < 9; ++row) {
for (int col = 0; col < 9; ++col) {
}
item = new QTableWidgetItem();
item->setText((std::to_string(n)));
ui->tableWidget->setItem(row,col,item);
n++;
if(row ==8 , col ==8){
check = true;
}
}
}
这只是一个演示,用于检查我是否可以向每个单元格添加数字。
有几件事你必须改变。首先,使用
设置 table 的行数和列数
QTableWidget::setColumnCount(int columnCount)
QTableWidget::setRowCount(int rowCount)
然后,为您的迭代使用设置大小总是更安全,以确保您不会 'out of bounds'。通过以下方式获取它们:
int QTableWidget::columnCount()
int QTableWidget::rowCount()
最后要构建 QTableWidgetItem
,您必须使用 QString
而不是 std::string
(参见 docs)。
这是一个最简单的例子:
QTableWidget* table_widget = new QTableWidget(this);
table_widget->setColumnCount(9);
table_widget->setRowCount(9);
for(int r = 0; r < table_widget->rowCount(); ++r) {
for(int c = 0; c < table_widget->columnCount(); ++c) {
table_widget->setItem(r, c, new QTableWidgetItem(QString::number(r+c)));
}
}
您可能还想在其中查看 these tutorials. They are an awesome resource to get familiar with a lot of basic functionality in no time. You'll find answers about how to parse files in Qt。
编码愉快!
我有 Qtable 和名为 input.txt
的文件我正在尝试通过读取 input.txt.
在 Qtable 小部件上显示数据table 有 9 行和 9 列。我尝试制作一个 QTable 小部件项目并使用 for 循环将数据放入其中。但无法让它工作。
这是我试过的代码
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
int n = 0;
QTableWidgetItem *item = new QTableWidgetItem;
item->setText(QString("1"));
bool check = false;
while(!check){
for (int row = 0; row < 9; ++row) {
for (int col = 0; col < 9; ++col) {
}
item = new QTableWidgetItem();
item->setText((std::to_string(n)));
ui->tableWidget->setItem(row,col,item);
n++;
if(row ==8 , col ==8){
check = true;
}
}
}
这只是一个演示,用于检查我是否可以向每个单元格添加数字。
有几件事你必须改变。首先,使用
设置 table 的行数和列数QTableWidget::setColumnCount(int columnCount)
QTableWidget::setRowCount(int rowCount)
然后,为您的迭代使用设置大小总是更安全,以确保您不会 'out of bounds'。通过以下方式获取它们:
int QTableWidget::columnCount()
int QTableWidget::rowCount()
最后要构建 QTableWidgetItem
,您必须使用 QString
而不是 std::string
(参见 docs)。
这是一个最简单的例子:
QTableWidget* table_widget = new QTableWidget(this);
table_widget->setColumnCount(9);
table_widget->setRowCount(9);
for(int r = 0; r < table_widget->rowCount(); ++r) {
for(int c = 0; c < table_widget->columnCount(); ++c) {
table_widget->setItem(r, c, new QTableWidgetItem(QString::number(r+c)));
}
}
您可能还想在其中查看 these tutorials. They are an awesome resource to get familiar with a lot of basic functionality in no time. You'll find answers about how to parse files in Qt。
编码愉快!