Search code examples
qtclipboardqlistwidget

Copy selected items from QListWidget filled with filenames to the clipboard, but as files (not text)


I have a QListWidget which I fill with filenames, when user hits Ctrl+C I want to place the filenames to the clipboard, so if the user hits Ctrl+V in a file manager the files will be copied.


Solution

  • You'll have to subclass the QListWidget and write in the keyPressEvent() something like that:

    virtual void keyPressEvent(QKeyEvent *event) {
    if (event->matches(QKeySequence::Copy)) {
      int itemsCount = count();
      QStringList strings;
      for (int i = 0; i < itemsCount; ++i)
        strings << item(i)->text();
    
      QApplication::clipboard()->setText(strings.join("\n"));
    }