qt mac窗体无边框后问题解决方案

qt+MacOS环境下添加标题栏和工具栏 1、.pro文件添加 macx: QT += macextras 2、合并标题栏、工具栏 //合并标题栏和工具栏 auto *tbar = new QToolBar(); tbar->addWidget(new QPushButton("Btn")); this->addToolBar(tbar); this->setUnifiedTitleAndToolBarOnMac(true); // activate Mac-style toolb 阅读详情

文件后后缀名改为.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];
}

 

QT窗体禁止拖动缩放:使用setFixedSize方法 QT窗体禁止拖动缩放:使用setFixedSize方法 需求: 我想实现窗体在正常状态(Qt::WindowNoState)边框不能通过鼠标拖动改变窗体大小,不影响窗体的正常最大化和还原状态(1024*768)(屏幕的初始大小是可使用屏幕的大小)。 实现: 在构造方法里获取可以使用的最大屏幕尺寸。 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) {. 阅读详情

相关推荐

QT跨平台无边框窗体框架设计与实现(含拖拽缩放及菜单功能)

Qt 是一套功能强大的 C++ 开发框架,广泛应用于跨平台图形界面开发。其核心优势在于高度封装的 API 和统一的事件处理机制,使得开发者能够编写一次代码,部署到 Windows、Linux、macOS 等多个平台。Qt 的跨平台能力得益于其对各操作系统底层窗口系统的抽象封装,通过 QPA(Qt Platform Abstraction)实现平台适配。在现代 GUI 开发中,无边框窗体(Frameless Window)因其高度定制化,广泛用于现代风格的桌面应用界面设计。

weixin_36474966的博客 1168

Mac 应用开发 window 显示的样式

[_window setMovableByWindowBackground:YES]; //可以拖动 //self.window.styleMask=NSTexturedBackgroundWindowMask; //窗口的样式;金属 //self.window.styleMask =NSFullScreenWindowMask; ...

weixin_30336061的博客 294

TrueFramelessWindow:在Windows和macOS上均具有Qt的真正无框架窗口

TrueFramelessWindow 在Windows和macOS上均具有Qt的真正无框架窗口 为什么 我对自己的应用程序外观很挑剔,所以我想控制整个应用程序区域。 Windows和macOS都在其窗口上绘制标题栏镶边,这很难从应用程序控制。 令人惊奇的是,除去这种Chrome。 Qt具有“ Qt :: FramelessWindowHint”属性,该属性可按所述方式绘制无框架窗口,但是它的代价是最小/最大/关闭,调整大小以及在Windows上使用Aero Snap功能。 您可以自己重新实现“最小/最大” /“关闭” /“调整大小”,但是我觉得没有Aero Snap太烦人了。 有一些针对Windows的嵌入式项目,例如BorderlessWindow和lib sleek旨在解决此问题,但它们需要至少1px的边框(不完整)才能显示Qt小部件下方的本机窗口,以调整大小。 它们还附带了自己

MacOS 开发 — NSWindow的使用

文章目录零:整体结构一、contentView 相关1、设置窗口背景颜色方法1:window.backgroundColor方法2:window.contentView.layer.backgroundColor2、设置 window frame/尺寸3、设置为点击背景可以移动窗口二、Content Border三、titleBar1、设置窗口标题2、设置标题栏图标3、隐藏tit...

HiroGuo 的博客 7648

arcgis根据矢量范围统计栅格数据众数、最大值、均值、中位数、最小值、少数等

像元统计数据 根据多个栅格数据计算每个像元的统计数据。 可用的统计数据有:众数、最大值、均值、中位数、最小值、少数、范围、标准差、总和及变异度。 https://desktop.arcgis.com/zh-cn/arcmap/10.3/tools/spatial-analyst-toolbox/an-overview-of-the-local-tools.htm ...

GIS哼哈哈的博客 6万+

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

【WebApi + Sqlserver】 使用C#编写WebApi并打开sqlserver数据库进行访问,代码适用于简单练习,真实开发需自行完善

2302_78387246的博客 3592

Qt之界面(自定义标题栏、无边框、可移动、缩放)

titleBar.hQ_OBJECTpublic:protected://双击标题栏进行界面的最大化/还原//进行界面的拖动//设置界面标题与图标//进行最小化、最大化/还原、关闭操作private://最大化/还原private://标题栏图标//标题栏标题//最小化按钮//最大化/还原按钮//关闭按钮//调用WIN API需要用到的头文件与库#endif//给成员变量申请内存//初始化图标Label。

hw5230的博客 5936

Halcon实战:5分钟搞定自定义直线卡尺工具(附完整代码下载)

本文详细介绍了如何使用Halcon快速开发自定义直线卡尺工具,通过交互式ROI绘制、边缘检测和直线拟合三个核心函数,实现高效工业视觉检测。文章包含完整代码下载,帮助开发者在5分钟内掌握这一实用工具的开发技巧,提升直线检测的精度和效率。

perl8的博客 249

macOS 开发 - NSWindow 自定义样式

零:整体结构 一、设置标题 二、设置标题栏图标 三、设置窗口背景颜色 方法1:window.backgroundColor 方法2:window.contentView.layer.backgroundColor 同时设置 四、设置 Content Border 五、设置为点击背景可以移动窗口 六、隐藏titlebar 方法1:xib上设置 方法2:代码设置 七、titleBar和 c...

AI工程化、开源分享、文档翻译、代码笔记 1万+

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制

武汉大学朱玉贤院士团队再发Nature Genetics,阐述棉花独特折叠胚胎形成的分子调控与演化机制。

Pangenes的博客 1335

深入解析STM32F103R6的USB OTG_FS双重角色设备(DRD)设计与应用

本文深入解析了STM32F103R6的USB OTG_FS双重角色设备(DRD)设计与应用。详细阐述了其作为USB主机和设备双重角色的硬件设计要点,包括VBUS电源管理与ID引脚配置,并提供了设备模式(如虚拟串口CDC)与主机模式(如读取U盘文件)的软件实现实战指南,帮助开发者充分发挥该芯片的OTG潜力。

weixin_29195615的博客 265

QT无边框窗体类(Win/Linux/Mac、阴影边框、靠边半屏)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 之前做过一版无边框窗体,可以参考前面博文,但存在两个缺点,一个不支持阴影边框,二不支持windows系统的贴边半屏,最近下定决心要攻克这个难题,很显然已经解决了。 此处感谢2位大神,代码中参考了2位前辈的部分代码 https://gitee.com/feiyangqingyun/QWidgetD...

Jack码•农的专栏 2477

VMware ESXi +DELL虚拟化存储磁盘容量处于紧急状态问题的处理

1、环境介绍 exsi server两台(DELL R730 ): 192.168.3.206 VMware EXSi6.5 192.168.3.207 VMware EXSi6.5 磁盘存储柜一台(DELL SC2000): 192.168.3.208 2、故障处理 由于前期规划的卷空间过大,虚拟机文件逐年增大以后,造成卷的磁盘占用过与整个磁盘空间的容量,虚拟化平台可用容量爆掉,DELL SC2000自动切换到紧急状态,禁止所有磁盘I/O,exsi主机上的虚拟机无法开机 首先,安装

wolf1105的博客 3531

Qt/C++开源作品38-无边框窗体方案(无抖动,支持win、linux、mac等系统,侧边半屏顶部全屏)

一 前言 不知道各位程序员有没有遇到过这样一种困惑,好不容易在开源网站找到了类似的想要的项目代码,结果down下来一编译,我勒个去,几百个错误,根本没法用,熟悉的人还好可以直接阅读代码进行修改(有些只要做小改动就能正常编译,有些可能需要大刀阔斧),可是对于绝大部分的初学者来说绝对是噩梦,连把代码看下去的勇气都没有,我们没有任何权利和理由去责怪开原作者,只是期望各位能够在项目开源的同时,将开源项目完善好、测试好,最起码要把项目中依赖的遗漏的文件一起打包好,或者作出必要的说明,比如对应的开发编译版本要求,以来的

Qt/C++视频监控/推流/物联网/大屏系统/自定义控件/UI定制/输入法 5517

实战指南 | 快速修复Adobe Acrobat 2020安装过程中的常见注册表错误

本文提供了Adobe Acrobat 2020安装过程中遇到“无法打开键”注册表错误的详细修复指南。通过安全编辑注册表,精准定位并删除残留键值,可快速解决此常见安装报错,确保软件顺利安装。同时,文章也介绍了其他安装问题的应对策略与预防措施。

weixin_29200485的博客 560

老服务器焕新记:在Dell R730上折腾Nvidia K80显卡的完整记录(含Anaconda环境配置)

本文详细记录了在Dell R730服务器上为Nvidia K80计算卡安装驱动、配置CUDA及Anaconda环境的完整过程。文章重点解决了老旧硬件与CentOS 7系统的兼容性问题,提供了从BIOS设置、驱动版本精准匹配到Python机器学习环境搭建的实战指南,旨在帮助读者低成本挖掘旧服务器的GPU计算潜力。

weixin_29197835的博客 503

mac 下解决Qt::FramelessWindowHint 在 qt 5.12.1 , xcode 12 无法缩小的一种解决方案

为了显示效果, 我们经常会使用无边框的窗体,其主要的实现方法为设置窗体属性为Qt::FramelessWindowHint, 但是这个方法在某些Mac版本下面会出现无法缩小的问题,即调用showMinimized()无效。网上有说是Qt老版本的bug,也有一些比较复杂的解决方案,经过多次尝试,这里提供一种投机取巧的方法,亲测有效。其主要的原理是 Qt去掉边框有两种方法,一种是设置窗口标志Qt::FramelessWindowHint, 一种是设置窗口标志Qt::CustomizeWindowHint,这两

lgz1989cn的专栏 1652

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Qt 在Mac下无边框后无法最大化和最小化解决方案

Qt 5.0以上mac版本一致存在这个bug,网上也有解决方案,一个是修改Qt源码重新编译,这个比较费事,另一个是将文件改为.mm后缀,使用oc代码: NSView* view = (NSView*)this->winId(); NSWindow* wnd = [view window]; [wnd miniaturize:nil];这句代码好像在qt5.2中可以解决,然后我测试了之后的所有...

xpg4321的博客 6843

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

QT实战学习记录一

qt学习笔记

小菜鸡-言西子 1347

QT样式表设置 之 QComboBox下拉框样式

/* 未下拉时,QComboBox的样式 */ QComboBox { border: 1px solid gray; /* 边框 */ border-radius: 3px; /* 圆角 */ padding: 1px 18px 1px 3px; /* 字体填衬 */ color: #000; font: normal normal 15px...

学之知之的博客 2万+

Qt无边框窗口实战:事件系统与自定义标题栏完整指南

桌面应用开发中,窗口外观与交互体验很大程度上决定了产品的质感。传统系统标题栏样式固定、位置受限,难以满足深色模式或个性化皮肤的需求,因此无边框窗口成为定制界面的常用方案。然而移除系统边框后,窗口拖动、边缘缩放、按钮控制等原本依赖操作系统的行为,都需要开发者通过事件机制自行实现。Qt 提供了完善的事件处理模型,从 QMouseEvent 到事件过滤器,从事件分发到模拟点击,都能在真实项目中落地。本文以 Qt Widgets 为例,手把手搭建一个包含自定义标题栏、内容区和状态栏的完整示例,逐步解析鼠标事件、触摸

weixin_34319111的博客 593

QT 随笔

 1. 设置窗体属性,无边框 | 置顶 setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHint | Qt::WindowStaysOnTopHint); 2. 槽-信号机制中用到自己定义数据类型: class MyTest { }; class MyThread:...

weixin_33910460的博客 94

QT自定义精美换肤界面

陆陆续续用QT开发过很多项目,也用QT写过不少私活项目,也写过N个工具,一直梦寐以求能像VC一样可以很方便的有个自定义的界面,QSS的强大让我看到了很好的希望,辗转百度谷歌无数次,一直搜索QT相关的换肤文章,绝大部分的是一些简单的按钮文本样式,要做到整体换肤程度几乎不行,QTCN论坛里的奋斗的孩子写了个模仿360安全卫士系列,让我既惊喜有遗憾,惊喜的是能够用QT实现一个这么完整的360安全卫士界面...

weixin_33961829的博客 865

Qt for MacOS上架App Store需要注意的系统定制化开发点

用Qt开发Mac App超过5年时间,之前也单独用Cocoa上架了一款Mac软件,但如果考虑的是跨平台Win和Linux的需求,基本还是用Qt为主。浏览器只能用WKWebview,不能使用任何非Webkit内核的浏览器,比如CEF,WebEngine。6. Ping处理,因Mac平台下断线重连比Win下要慢很多,故采用了PING服务器IP进行快速重连操作,这里封装了SimplePing的开源代码,故此不再展示。苹果有浅色,深色和自动三种皮肤模式。4. 窗口标题栏定制,设置高度,存放按钮,修改样式等。

u011070592的博客 964

Qt开发者实战指南:从核心概念到项目部署的完整路径

信号与槽机制是Qt框架实现对象间通信的核心设计模式,它基于元对象系统提供了一种类型安全、松耦合的事件驱动编程方式。这一机制不仅简化了GUI事件处理,其内置的跨线程安全特性更是解决了多线程环境下UI更新的关键难题,极大地提升了客户端应用的响应性与可靠性。在工程实践中,结合模型/视图架构进行数据管理,并利用QSS进行界面美化,能够高效构建出结构清晰、维护性强的桌面应用程序。针对实际开发中常见的环境配置、编译部署及性能优化问题,本文提供了基于MinGW/MSVC工具链的配置方案、windeployqt等打包工具的

weixin_30564901的博客 398
上一篇: librdkafka 封装的C++类
下一篇: Qt 绘制电池
很菜但努力
博客等级 码龄17年 113粉丝 50原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值