Hi,
Try something like this
switch(keyEvent->key())
{
case Qt::Key_C:
if(keyEvent->modifiers() & Qt::ControlModifier)
{
QList<QTreeWidgetItem *> selItems = this->selectedItems();
qApp->processEvents();
// Add header
for(int i = 0; i < this->headerItem()->columnCount(); i++)
temp += this->headerItem()->data(i, 0).toString() + '\t';
temp.remove(temp.size() - 1, 1); // remove last '\t'
temp += '\n';
for(int i = 0; i < selItems.size(); i++)
{
for(int j = 0; j < selItems.at(0)->columnCount(); j++)
temp += selItems.at(i)->data(j, 0).toString() + '\t';
temp.remove(temp.size() - 1, 1); // remove last '\t'
temp += '\n';
}
temp.remove(temp.size() - 1, 1); // remove last '\n'
}
else
break;
switch(keyEvent->key())
{
case Qt::Key_C:
if(keyEvent->modifiers() & Qt::ControlModifier)
{
QList<QTreeWidgetItem *> selItems = this->selectedItems();
QApplication::setOverrideCursor(Qt::WaitCursor);
QString temp;
qApp->processEvents();
// Add header
for(int i = 0; i < this->headerItem()->columnCount(); i++)
temp += this->headerItem()->data(i, 0).toString() + '\t';
temp.remove(temp.size() - 1, 1); // remove last '\t'
temp += '\n';
for(int i = 0; i < selItems.size(); i++)
{
for(int j = 0; j < selItems.at(0)->columnCount(); j++)
temp += selItems.at(i)->data(j, 0).toString() + '\t';
temp.remove(temp.size() - 1, 1); // remove last '\t'
temp += '\n';
}
temp.remove(temp.size() - 1, 1); // remove last '\n'
QApplication::clipboard()->setText(temp);
QApplication::restoreOverrideCursor();
}
else
QTreeWidget::keyPressEvent(keyEvent);
break;
To copy to clipboard, switch view to plain text mode
It's part of my keyPressEvent function, I use QTreeWidget but for QTreeView will be quite similar.
Regards
Bookmarks