Qt4是否使用窗口图标实现拖放?

时间:2012-11-06 20:22:52

标签: macos user-interface drag-and-drop qt4 pyqt4

OS X中的几个窗口具有可拖放的窗口图标(例如Terminal,Keynote,Finder)。可以设置Qt4窗口图标进行拖放吗?我无法弄清楚点击窗口图标是否会触发任何事件。

1 个答案:

答案 0 :(得分:0)

由于此功能仅适用于一个平台,因此可能无法在Qt中直接使用。可能您将不得不使用Cocoa API来处理此类事件。你可以获得原生窗口句柄:

  

WId QWidget :: winId()const返回窗口系统标识符   小部件。

     

原则上是便携式的,但是如果你使用它,你很可能会这样做   不便携的东西。小心。

     

如果一个小部件是非本地的(外来的)并且在它上面调用了winId(),那么   小部件将提供本机句柄。

     

在Mac OS X上,返回的类型取决于Qt是哪个框架   联系在一起。如果Qt正在使用Carbon,那么{WId}实际上是一个   HIViewRef。如果Qt使用Cocoa,{WId}是指向NSView的指针。

使用这样的句柄你可能能够使用原生(不可移植!)Mac OS X代码来处理“窗口图标拖动”