Копировать в буфер обмена из таблицы

Я написал код и мне нужно скопировать выбранные строки в Qt C ++

мой OTPWindow.cpp файл имеет
эта функция

SafeOTPWindow::on_tblCopy_clicked()
{
QClipboard* clip = qApp->clipboard();
clip->setText(ui->tblLog->text());
}

мой OTPWindow.h файл имеет

private slots:
void on_tblCopy_clicked();

Я получаю ошибку

текст не является членом Qtableview, Как я могу решить эту ошибку

Мне нужно скопировать текстовое содержимое из tableview которые в строках внутри Какое свойство я должен установить в .cpp файле. Вот tblLog мой tableview,

0

Решение

Чтобы добиться того, чего вы хотите, это получить список выбранных элементов и объединить текст этих элементов, как показано ниже:

QStandardItemModel *model = qobject_cast<QStandardItemModel*>(ui->tableView->model());

if (!model) //Check if listview has a model
return;

QModelIndexList indexlist = ui->tableView->selectionModel()->selectedIndexes();

QString str;

int lastrow = -1;

foreach (const QModelIndex &index, indexlist)
{
if (lastrow >= 0)
{
if (index.row() == lastrow)
str.append(Qt::Key_Space); //Add space between items in same line
else
str.append("\n"); //Add break line if entering in a new line
}

str.append(model->index(index.row(), index.column()).data().toString());

lastrow = index.row();
}

str.append("\n"); //Add break line to the end of the string

QClipboard* clipboard = QApplication::clipboard();
clipboard->setText(str); //Copy the string to clipboard
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]