Qt阻力';n';下拉应用程序窗口&x2013;类似于浏览器选项卡

Qt阻力';n';下拉应用程序窗口&x2013;类似于浏览器选项卡,qt,drag-and-drop,Qt,Drag And Drop,手头的任务是实现一个拖放处理程序,该处理程序允许拖动元素 窗间 窗外 所需的行为类似于浏览器选项卡:通过将选项卡从一个浏览器窗口拉到另一个浏览器窗口,选项卡可以在窗口之间移动。将选项卡从窗口中拉出将创建一个新的浏览器窗口,其中该选项卡处于打开状态 我想在我的程序中复制这个 我看到了几种手动实现的可能性,但是有没有一些简单的方法可以通过Qt中包含的电池实现这一点?afaik没有这样的“一条线”来实现这一行为 一种方法是,应用程序将有关选项卡的所有必要信息存储在剪贴板中,并知道如何解释这些信息以

手头的任务是实现一个拖放处理程序,该处理程序允许拖动元素

  • 窗间
  • 窗外
所需的行为类似于浏览器选项卡:通过将选项卡从一个浏览器窗口拉到另一个浏览器窗口,选项卡可以在窗口之间移动。将选项卡从窗口中拉出将创建一个新的浏览器窗口,其中该选项卡处于打开状态

我想在我的程序中复制这个


我看到了几种手动实现的可能性,但是有没有一些简单的方法可以通过Qt中包含的电池实现这一点?

afaik没有这样的“一条线”来实现这一行为

一种方法是,应用程序将有关选项卡的所有必要信息存储在剪贴板中,并知道如何解释这些信息以创建新选项卡(在第二个实例中)

另一种方法是(当我想到firefox时,我不知道他们是如何处理的)使用共享内存并在实例之间共享该指针(但我不知道这是否被认为是“安全的”)


干杯

我安装的浏览器中没有一个使用D+D进行此操作。简单的鼠标捕获,在鼠标移动通知上移动窗口。@HansPassant:这也是我实现它的方式。我只是想知道我是否可以为此劫持QDrag(它必须完成所有繁重的工作,例如为pixmap创建一个窗口、捕捉鼠标等等…)。哦,好了,我的下午就到了。浏览器通常为窗口共享一个实例进程,所以实际上不需要IPC来做这件事。在我的例子中,无论如何,事情都局限于所讨论的特定过程,因此也不需要摆弄IPC机制。我只是想知道我是否可以利用现有的鼠标捕获和pixmap拖动窗口,这已经在QDrag中实现了。