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

Qt 将所选项目从填充有文件名的QListWidget复制到剪贴板,但作为文件(不是文本),qt,clipboard,qlistwidget,Qt,Clipboard,Qlistwidget,我有一个用文件名填充的QListWidget,当用户点击Ctrl+C时,我想将文件名放在剪贴板上,因此如果用户在文件管理器中点击Ctrl+V,文件将被复制。您必须对QListWidget进行子类化,并在keyPressEvent()中写入类似的内容: virtual void keyPressEvent(QKeyEvent *event) { if (event->matches(QKeySequence::Copy)) { int itemsCount = count(); QS

我有一个用文件名填充的QListWidget,当用户点击Ctrl+C时,我想将文件名放在剪贴板上,因此如果用户在文件管理器中点击Ctrl+V,文件将被复制。

您必须对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"));
}
虚拟无效按键事件(QKeyEvent*事件){
如果(事件->匹配(QKeySequence::Copy)){
int itemscont=count();
QStringList字符串;
对于(int i=0;isetText(strings.join(“\n”);
}