文件后后缀名改为.mm
设置无边框不使用qt自带的方式:
void setWindowFrameless(QWidget *widget, bool bRound)
{
NSView* view = (NSView*)widget->winId();
NSWindow* wndd = [view window];
if(bRound)
{
wndd.titlebarAppearsTransparent = YES;
wndd.titleVisibility = NSWindowTitleHidden;
wndd.styleMask |= NSFullSizeContentViewWindowMask;
}
else
{
[view setAutoresizesSubviews:YES];
[view setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];
[view setAutoresizesSubviews:YES];
[view setAutoresizingMask:NSViewWidthSizable];
//设置窗口为无边界
[wndd setStyleMask:NSBorderlessWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask];
//设置窗口为透明
[wndd setOpaque:NO];
// //设置背景无色
// [wndd setBackgroundColor:[NSColor clearColor]];
//设置为点击背景可以移动窗口
[wndd setMovableByWindowBackground:NO];
[wndd setHasShadow:YES];
}
[[wndd standardWindowButton:NSWindowZoomButton] setHidden:YES];
[[wndd standardWindowButton:NSWindowMiniaturizeButton] setHidden:YES];
[[wndd standardWindowButton:NSWindowCloseButton] setHidden:YES];
}
窗口最小化:
void minimizeWindow(QWidget *widget)
{
NSView* view = (NSView*)widget->winId();
NSWindow* wnd = [view window];
[wnd miniaturize:nil];
}
判断是否最小化:
bool isWindowminimized(QWidget *widget)
{
NSView* view = (NSView*)widget->winId();
NSWindow* wnd = [view window];
return [wnd isMiniaturized];
}