Выбранные строки в QTableView, скопируйте в QClipboard - PullRequest
15 голосов
/ 05 августа 2009

У меня есть база данных SQLite, и я сделал это в QSqlTableModel. Чтобы показать базу данных, я поместил эту модель в QTableView.

Теперь я хочу создать метод, в котором выбранные строки (или вся строка) будут скопированы в QClipboard. После этого я хочу вставить его в мой OpenOffice.Calc-Document.

Но я понятия не имею, что делать с СИГНАЛОМ Selected и QModelIndex и как поместить это в буфер обмена.

Ответы [ 11 ]

0 голосов
/ 05 августа 2009

Я наконец понял, спасибо.

void Widget::copy() {

QItemSelectionModel *selectionM = tableView->selectionModel();
QModelIndexList selectionL = selectionM->selectedIndexes();

selectionL.takeFirst(); // ID, not necessary
QString *selectionS = new QString(model->data(selectionL.takeFirst()).toString());
selectionS->append(", ");
selectionS->append(model->data(selectionL.takeFirst()).toString());
selectionS->append(", ");
selectionS->append(model->data(selectionL.takeFirst()).toString());
selectionS->append(", ");
selectionS->append(model->data(selectionL.takeFirst()).toString());

clipboard->setText(*selectionS);
}

и

connect (tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(copy()));
...