在Mac上从QT获取窗口句柄

时间:2019-02-15 11:53:35

标签: c++ macos qt cocoa

我正在从SDL寻找此解决方案的等效项,以从OSX(Mojave)上的QT(5.12)获取窗口句柄

  SDL_SysWMinfo wmInfo = {};
  SDL_GetWindowWMInfo(window, &wmInfo);
  mInfo.info.cocoa.window;

我尝试了在堆栈上找到的解决方案

NSWindow* window  = [[NSWindow alloc] initWithContentRect:NSMakeRect(500, 500, 500, 500)
      styleMask:NSTitledWindowMask |  NSClosableWindowMask | NSMiniaturizableWindowMask | NSResizableWindowMask
      backing:NSBackingStoreBuffered
      defer:NO];

但是失败并显示错误消息

expected variable name or this in lambda capture list

我通过QWidget尝试过

QWidget window;
window.resize(320, 240);
window.show();
window.winId()
window.windowHandle()

我尝试使用QMacNativeWidget,但它也失败了。

我试图愚弄这种进口商品

#import <Foundation/Foundation.h>
#import <AppKit/AppKit.h>
#import <AppKit/NSWindow.h>

但是NSWindow.h会抛出很多错误消息。例如,它抱怨缺少牙套。

所以我找不到任何对我有帮助的文档,并且我按照尝试错误原则工作,这不是最有效的方法^^

也许你们中的一个人已经遇到了同样的问题,可以提供一些帮助或参考

0 个答案:

没有答案