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

发布于 2024-10-17 06:49:03 字数 88 浏览 7 评论 0原文

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

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

如歌彻婉言 2024-10-24 06:49:03

您必须对 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"));
}

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"));
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文