Название: QTableWidget поменять столбцы местами
Отправлено: luksing от Июнь 12, 2013, 17:47
Здравствуйте! Не могу найти решения для своей задачи. Необходимо считать из файла квадратную матрицу, вывести ее с помощью элемента TableWidget, а затем поменять местами первый и последний столбец. Я сделал с помощью вектора и еще одного файла, куда записывается измененная матрица и заново выводится, но необходимо сделать с помощью функций работы с таблицей
Название: Re: QTableWidget поменять столбцы местами
Отправлено: kambala от Июнь 12, 2013, 19:21
просто последовательно меняешь местами значения первого и последнего столбца: C++ (Qt) for (int i = 0, rows = tableWidget->rowCount(), lastColumn = tableWidget->columnCount() - 1; i < rows; ++i) { QTableWidgetItem *lastColumnItem = tableWidget->item(i, lastColumn), *firstColumnItem = tableWidget->item(i, 0); QString lastColumnValue = lastColumnItem->text(); lastColumnItem->setText(firstColumnItem->text()); firstColumnItem->setText(lastColumnValue); }
Название: Re: QTableWidget поменять столбцы местами
Отправлено: GreatSnake от Июнь 12, 2013, 21:31
C++ (Qt) QTableWidget::header()->swapSections( int first, int second ); QTableWidget::header()->moveSection( int from, int to );
Название: Re: QTableWidget поменять столбцы местами
Отправлено: luksing от Июнь 13, 2013, 00:02
Большое спасибо! Разобрался)) только в таком виде for (int i = 0, rows = tableWidget->rowCount(), lastColumn = tableWidget->columnCount() - 1; i < rows; ++i) { QTableWidgetItem *lastColumnItem = tableWidget->item(i, lastColumn), *firstColumnItem = tableWidget->item(i, 0); QString lastColumnValue = lastColumnItem->text(); lastColumnItem->setText(firstColumnItem->text()); firstColumnItem->setText(lastColumnValue); }
была ошибка "tableWidget was not declared in this scope". Немного изменил и все заработало int rows=ui->tableWidget->rowCount(); int lastColumn=ui->tableWidget->columnCount() - 1; for (int i = 0; i < rows; ++i) { QTableWidgetItem *lastColumnItem = ui->tableWidget->item(i, lastColumn), *firstColumnItem =ui-> tableWidget->item(i, 0); QString lastColumnValue = lastColumnItem->text(); lastColumnItem->setText(firstColumnItem->text()); firstColumnItem->setText(lastColumnValue); }
|