在 C++ 中打印 QTableView 中的所有可见行
Print all visible rows in QTableView in c++
我的 QTableView 中有 100 多行。但一次只能看到 6 行。要查看下一组行,我必须使用滚动条。
我想在 QTableView 中打印可见行。但不能那样做。我只能打印单个选定的行。
QItemSelectionModel *select = _table->selectionModel();
QModelIndexList selectedRow = select->selectedRows();
QModelIndex index = selectedRow.at(0);
int columnCount = 2; // there are 2 columns in a row
QString copySelectedRowText_;
for(int i = 0 ; i < columnCount; i++)
{
copySelectedRowText_ += index.sibling(index.row(), i).data().toString()+ " ";
}
qDebug() << copySelectedRowText_;
如何在QTableView中打印可见行?
可以通过verticalScrollbar
的value()
获取当前行号,也可以通过pagestep()
.
获取可显示行数
这是我的代码,你可以试试:
void TesWidget::onbtnClicked()
{
int start_index = ui.tableView->verticalScrollBar()->value();
int page_cnt = ui.tableView->verticalScrollBar()->pageStep();
int end_index = start_index + page_cnt;
int row_cnt = model_->rowCount();
int col_cnt = model_->columnCount();
QString text;
for (int i = start_index; i < row_cnt && i <= end_index; i++)
{
for (int j = 0; j < col_cnt; j++)
{
text.append(QStringLiteral("%1 ").arg(model_->item(i,j)->text()));
}
text.append("\n");
}
qDebug() << text;
}
我的 QTableView 中有 100 多行。但一次只能看到 6 行。要查看下一组行,我必须使用滚动条。
我想在 QTableView 中打印可见行。但不能那样做。我只能打印单个选定的行。
QItemSelectionModel *select = _table->selectionModel();
QModelIndexList selectedRow = select->selectedRows();
QModelIndex index = selectedRow.at(0);
int columnCount = 2; // there are 2 columns in a row
QString copySelectedRowText_;
for(int i = 0 ; i < columnCount; i++)
{
copySelectedRowText_ += index.sibling(index.row(), i).data().toString()+ " ";
}
qDebug() << copySelectedRowText_;
如何在QTableView中打印可见行?
可以通过verticalScrollbar
的value()
获取当前行号,也可以通过pagestep()
.
这是我的代码,你可以试试:
void TesWidget::onbtnClicked()
{
int start_index = ui.tableView->verticalScrollBar()->value();
int page_cnt = ui.tableView->verticalScrollBar()->pageStep();
int end_index = start_index + page_cnt;
int row_cnt = model_->rowCount();
int col_cnt = model_->columnCount();
QString text;
for (int i = start_index; i < row_cnt && i <= end_index; i++)
{
for (int j = 0; j < col_cnt; j++)
{
text.append(QStringLiteral("%1 ").arg(model_->item(i,j)->text()));
}
text.append("\n");
}
qDebug() << text;
}