拖放Qt:知道目标应用程序悬停-是可能的
Drag and drop with Qt: Knowing target application on hover - is it possible?
我目前正在探索从Qt应用程序拖放到未知目标应用程序的可能性。问题是Qt应用程序是否有可能接收到即将接收删除的应用程序的信息(例如进程名或标题)。
一个(组成)的例子可以从Qt窗口拖动绘图到文本编辑器或电子表格编辑器。在前者中,它将作为图像提供数据,在后者中,它将作为数据点提供数据。
似乎Qt在悬停时多少知道drop的潜在目标是什么,因为在改变DropAction状态时发出actionChanged信号。如果我没有弄错的话,目标应用程序似乎会查看拖动对象中包含的mime类型,并指示如果在那里放置该操作将是什么。我也没有从targetChanged信号中得到任何东西(据我所知,这是为了在当前的Qt应用程序中删除)。
您可以为拖动mime数据添加几种数据类型。在创建可拖动数据时,您可以放置图像和点数据(使用适当的mime类型),每个应用程序将决定它接受什么数据以及如何解释它。
详细信息请查看https://doc.qt.io/qt-5/dnd.html#dragging
您无法真正知道哪个应用程序将接收您的drop。但是,这并不妨碍您在与拖放操作相关联的缓冲区中包含不同格式的数据。类QMimeData提供了setData方法,该方法将mimeType作为第一个参数。您可以将一些数据用于给定的mime类型,而另一些数据用于不同的mime类型。它不会擦掉第一个。自定义mime数据通常对应用程序中的drop更有用,但也有一些相对标准的:setText, setHtml, setUrls, setImageData和setColorData。
通常情况下,你可以同时把一些文本和一些图像放到拖拽中,接收应用程序应该选择它需要的那个
- 试图在visual studio上用C++创建一个桌面应用程序
- FFmpeg:制作一个应用程序比直接使用ffmepg更好吗
- 在C应用程序中运行C++(带有STL)函数
- 使用VerQueryValue检索应用程序的文件描述
- Qt C++静态thread_local QNetworkAccessManager是线程应用程序的好选择吗
- 使用调试/崩溃报告将应用程序部署到客户端
- C++控制台应用程序阻止退出
- 码头化的C++应用程序是否向后兼容早期的内核版本
- 将应用程序从32位移植到64位时出现问题
- 如何改变c++应用程序的视觉效果
- WM_CTLCOLORSTATIC从未在WIN32应用程序中触发
- PC中的程序和PHONE中的本机描述应用程序之间的数据连接
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 示例外壳应用程序显示的 V8 "segmentation fault (core dumped)"错误
- phytec phyBOARD iMX-6在从闪存而不是SD卡运行qt5 opengles应用程序时表现不佳(FPS减半
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 如何从Windows应用程序输出到标准?
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在 64 位 vb.net Windows 应用程序中引用 32 位 dll
- 拖放Qt:知道目标应用程序悬停-是可能的