mac 下解决Qt::FramelessWindowHint 在 qt 5.12.1 , xcode 12 无法缩小的一种解决方案_stmessagebox.windowflags() |qt::framelesswindowhin_lgz1989cn的博客-程序员秘密

技术标签: qt  mac  

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

Qt去掉边框有两种方法,一种是设置窗口标志Qt::FramelessWindowHint, 一种是设置窗口标志Qt::CustomizeWindowHint,这两种的区别是第二种是可以拖拽边框放大缩小的。经过测试,当设置为第二种模式时,是可以响应showMinimized()函数的。因此我们的解决方案是在调用showMinimized前先将窗口标记改为Qt::CustomizeWindowHint,此时系统会去掉Qt::FramelessWindowHint属性并添加上Qt::WindowTitleHint属性,showMinimized()后重新恢复标记FramelessWindowHint,并需要强制调用以下show。这里的show的原理我不是很清楚,但是不调用这个,好像setWindowFlags会不生效,从而导致出现两个边框的效果。如果大佬有知道show原理的,请帮忙解下惑。另外如果大家有更好的方法,也请赐教下。具体核心代码见下图

 

Qt::FramelessWindowHint Produces a borderless window. The user cannot move or resize a borderless window via the window system. On X11, the result of the flag is dependent on the window manager and its ability to understand Motif and/or NETWM hints. Most existing modern window managers can handle this.
Qt::CustomizeWindowHint Turns off the default window title hints.
void QMyDialog::onBtnMinClikced(bool)
{
	setWindowFlags((windowFlags() | Qt::CustomizeWindowHint) & (~Qt::WindowTitleHint));
	showMinimized();
	setWindowFlags(windowFlags() & (~Qt::CustomContextMenu & ~Qt::WindowTitleHint) | Qt::FramelessWindowHint);
	show();
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lgz1989cn/article/details/106455789

智能推荐

java中的加密算法_iteen的博客-程序员秘密

数据的加密,在数据传输过程中是常用到的,前面几天在公众号上看到一篇文章讲的加密算法,感觉写得很不错,于是乎记录写自己感觉重要的再加上写自己的理解并粘上代码。一.什么是加密算法数据加密的基本过程就是对原来为明文的文件或数据按某种算法进行处理,使其成为不可读的一段代码,通常称为“密文”,使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取,阅读的目的。该过程的...

Vue:本地开发node服务器+vue正常打包上线后代理服务器失败,出现跨域问题_KaiSarH的博客-程序员秘密

本地开发node服务器+vue正常打包上线后代理服务器失败,出现跨域问题

成长的足迹:阿里巴巴5位专家技术之路的思考与感悟_weixin_34365635的博客-程序员秘密

五四青年节之际,云栖社区特别邀请了5位阿里云技术/产品专家,来分享他们的#成长记忆#,每位专家将呈现出他们独一无二的人生经历、认识和感悟,希望能对大家有所帮助和启发。以下为5位专家的分享:第一位专家:云樟《从小立志当“司机”,却阴差阳错成为了阿里云PD》“不是每个人都有立功立德立言的机遇,但是每个人都可以努力成为最好的自己”。很多人...

Java 生成可直接下载的二维码(spring boot)_downloadqr_猫玛尼的博客-程序员秘密

最近做的一个项目中,需要提供给web端一个接口:downloadQr。用到了Google的Zxing框架。项目使用的是springboot框架。一、API文档接口名称:/downloadQr 接口描述:生成可直接下载的二维码图片 请求方式:GET 请求参数:String data 响应内容:二维码图片数据流二、下面直接上代码controller层@GetMapping("download

VRTK 圆盘的上下左右键_JoeManba的博客-程序员秘密

using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using VRTK;public class Test : MonoBehaviour { public VRTK_ControllerEvents vRTK_ControllerEv...

自然语言处理之词袋模型Bag_of_words_羊城迷鹿的博客-程序员秘密

文章目录读取训练数据BeautifulSoup处理获取词袋和向量预测结果使用随机森林分类器进行分类输出提交结果尝试使用xgb还是随机森林好用教程地址:https://www.kaggle.com/c/word2vec-nlp-tutorial/overview/part-1-for-beginners-bag-of-words读取训练数据训练数据的内容是2500条电影评论。impor...

随便推点

用SPSS Modeler-对电商的重购买家特征挖掘_spss modeler实验报告_这个程序员不太冷的博客-程序员秘密

一.任务理解张三,护肤品及彩妆类卖家,几经打拼,信用积累到皇冠,但也累得半死,每日深陷护肤品行业的红海鏖战之中。感觉现在淘宝上的竞争越来越激烈,爆款可以带来销量,却带不来多少利润。促销、聚划算之类的活动做来做去,最后却发现钱都被开平台的马老板给挣走了。焦虑中的张三迫切想得到自家店铺的下面两点信息:(1) 如果下次再做会员促销,究竟哪些是最有可能对促销信息作出反馈的会员?即他应当优先考虑对哪...

CF1C Ancient Berland Circus 几何_Linux Unix的博客-程序员秘密

CF1C Ancient Berland Circus传送门:点这里题意:利用三个点求最小正多边形的面积。上图:手稿,有点丑思路:一个正多边形,其每个点必把圆平分,且中心事原点。设有:多边形在圆上的点把圆平分成了N段(就是像切蛋糕一样把圆切成了N块大小相等的蛋糕)。那么我们只需要求一个的大小,再乘以N。N=2 * pi / t(t为每块的圆心角)每块的面积为:R * R* sin t...

VS2015编译SQLite3 动态链接库DLL和静态库Lib_sqlite3 预编译头文件来自编译器的早期版本_IceCreHaker的博客-程序员秘密

SQLite是一款简单易用的轻量级数据库,相关优势请自行查阅资料,本文主要使用VS2015编译动态链接库Dll和静态库lib。SQLite官网:http://sqlite.org/index.htmlSQLite3下载页面: http://sqlite.org/download.html需要下载文件有1、sqlite-amalgamation-3190200.zip

c#连接SQL数据库并读取数据表的两种方法_c# 读取sql_weixin_42568854的博客-程序员秘密

今天分享一下C#如何连接数据库并且读取数据表的两种方法。C#连接SQL数据库主要通过微软库函数来实现,具体步骤分为以下三步第一,使用SqlConnection对象连接数据库; 需要引用System.Data.SqlClient;第二,建立SqlCommand对象,负责SQL语句的执行和存储过程的调用;第三,第二步会执行SQL语句,然后对SQL或存储过程执行后返回的**“结果”**进行操作。...

建群网培PMP每日一练2020-08-18_建群网培的博客-程序员秘密

建群网培PMP,助力一次过PMP 建群网培PMP,PMP加工厂 2019年,连续3期100%通过 培训: fu置本段内容?yKiccZMQnOs?打楷τa0寳 2020年12月考试培训于2020年9月下旬开始,将于2020年12月26日考试1、在获得项目可交付成果的最终验收后,为促进项目收尾,项目经理应该执行下列哪一项?A、与团队成员总结经验教训。B、通过收集客户对项目的反馈,衡量客户的满意度。C、为项目文件和资源存档,保留组织知识。D、将可交付成果的所有权转移到任命的相关方。2、某项

末学者笔记--MariaDB 数据库 末玄_weixin_30527143的博客-程序员秘密

Mariadb 数据库 五玄(集群配置)一.mariadb主从   主从多用于网站架构,因为主从的同步机制是异步的,数据的同步有一定延迟,也就是说有可能会造成数据的丢失,但是性能比较好,因此网站大多数用的是主从架构的数据库,读写分离必须基于主从架构来搭建...