将选中的项目从填充了文件名的QListWidget复制到剪贴板,但作为文件(不是文本)

sas*_*alm 3 clipboard qt qlistwidget

我有一个QListWidget,我用文件名填充,当用户按Ctrl + CI想要将文件名放到剪贴板时,所以如果用户在文件管理器中按Ctrl + V,文件将被复制.

zku*_*nov 6

你必须继承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"));
}
Run Code Online (Sandbox Code Playgroud)