Скопируйте выбранные элементы из QListWidget, заполненные именами файлов, в буфер обмена, но в виде файлов (не текстовых) - PullRequest
3 голосов
/ 13 февраля 2011

У меня есть QListWidget, который я заполняю именами файлов, когда пользователь нажимает Ctrl + C, я хочу поместить имена файлов в буфер обмена, поэтому, если пользователь нажимает Ctrl + V в файловом менеджере, файлы копируются.

1 Ответ

6 голосов
/ 13 февраля 2011

Вам нужно создать подкласс QListWidget и написать в keyPressEvent () что-то вроде этого:

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"));
}
...