Как скопировать данные из tableWidget в tableWidget_1?

215
15 июня 2017, 07:04

Добрый день, создал программу которая забирает данные из БД и выводит их в qtableWidget_1 в котором выведенные строки можно отметить с помощью Check Box. Рядом есть qtablewidget_2 куда отмеченные строки нужно скопировать, подскажите как такое можно реализовать ? Сам код вывода запроса из БД.

void MainWindow::on_pushButton_2_clicked()
{
ui->tableWidget->setColumnCount(5); // Указываем число колонок
ui->tableWidget->setShowGrid(true); // Включаем сетку
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); // Разрешаем выделение только одного элемента
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);// Разрешаем выделение построчно
//ui->tableWidget->setHorizontalHeaderLabels(headers);// Устанавливаем заголовки колонок
ui->tableWidget->horizontalHeader()->setStretchLastSection(false);// Растягиваем последнюю колонку на всё доступное пространство
// ui->tableWidget->hideColumn(0);// Скрываем колонку под номером 0
  ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//Запрещаем редактировать данные в полях таблицы
// Создаём запрос для для выборки записей из базы данных

QSqlQuery query = QSqlQuery(db);
if (!query.exec("SELECT * FROM mytable"))
{
   QMessageBox::information(this,"Окно информации","Не удалось выполнить запрос возможно нет соеденеия с базой данных.");
   qDebug() << query.lastError().databaseText();
   qDebug() << query.lastError().driverText();
   return;
}else{
/* Выполняем заполнение QTableWidget записями с помощью цикла
 * */
for(int i = 0; query.next(); i++){
    ui->tableWidget->insertRow(i);// Вставляем строку
    /* Устанавливаем в первую колонку id забирая его из результата SQL-запроса
     * Эта колонка будет скрыта
     * */
    ui->tableWidget->setItem(i,0, new QTableWidgetItem(query.value(0).toString()));

    QTableWidgetItem *item = new QTableWidgetItem();// Создаём элемент, который будет выполнять роль чекбокса
    item->data(Qt::CheckStateRole);
    /* Проверяем, на статус нечетности, если нечетное устройство, то
     * выставляем состояние чекбокса в Checked, иначе в Unchecked
     * */
    if(query.value(1).toInt() == 1){
        item->setCheckState(Qt::Checked);
    } else {
        item->setCheckState(Qt::Unchecked);
    }
    ui->tableWidget->setItem(i,0, item);// Устанавливаем чекбокс во вторую колонку
    // Забираем все данные из результата запроса и устанавливаем в остальные поля
    ui->tableWidget->setItem(i,1, new QTableWidgetItem(query.value(1).toString()));
    ui->tableWidget->setItem(i,2, new QTableWidgetItem(query.value(2).toString()));
    ui->tableWidget->setItem(i,3, new QTableWidgetItem(query.value(3).toString()));
    ui->tableWidget->setItem(i,4, new QTableWidgetItem(query.value(4).toString()));
    ui->tableWidget->setItem(i,5, new QTableWidgetItem(query.value(5).toString()));

}
ui->tableWidget->resizeColumnsToContents();
db.close();
    }
  }
READ ALSO
Проверка на ошибки, выход из цикла

Проверка на ошибки, выход из цикла

Можно ли сделать так, что при вводе числа программа выполняется до тех пор, пока не будет введена комбинация клавиш, например Ctrl+Z, но при этом...

298
Сниффер пакетов. Вызов recv возвращает ошибку

Сниффер пакетов. Вызов recv возвращает ошибку

Попытался сделать монитор отправляемых пакетов, тобеж чтоб было видно что отправляем мой браузер и что он принимает из сетиПишу на mac os компилятор...

267
Рекурсия с откатом [требует правки]

Рекурсия с откатом [требует правки]

Есть вот такая задачкаМожет кто-то уже решал подобную? Должна быть реализована рекурсия с откатом При печати книг за один проход на большом...

277
найти четные и нечетные число [требует правки]

найти четные и нечетные число [требует правки]

Построить линейный список из входной последова-тельности чиселПерестроить его так, чтобы сначала стояли все нечетные числа, затем все четные

398