QT 常用setAttribute 、setWindowFlags

2023-05-16

文章目录

    • 一、主界面
      • 1、窗体属性
      • 2、窗体标志
    • 二、注意
      • 1.最大化按钮失效置灰的问题

一、主界面

1、窗体属性

//设置为模态框。(如果再设置无边框窗口,那么模态会失效,不会阻塞其他窗口,须重新设置)
setAttribute(Qt::WA_ShowModal, true);
      
//如果部件接收了关闭事件,则删除这个部件,相当于delete 
setAttribute(Qt::WA_DeleteOnClose, true);
  
//意思是显示小部件而不使其处于活动状态,使它不能获得焦点
setAttribute(Qt::WA_ShowWithoutActivating,true);

//使透明效果生效
setAttribute(Qt::WA_TranslucentBackground);

//穿透属性,可以使部件不可点击,只显示外形,适合覆盖中的部件使用
setAttribute(Qt::WA_TransparentForMouseEvents);

2、窗体标志

//产生一个无边框的窗口,用户不能移动和改变大小
setWindowFlags(Qt::FramelessWindowHint); 

//待在所有窗口的最上面
setWindowFlags(Qt::WindowStaysOnTopHint);

//指示小部件是工具窗口,如果有父窗口,则永远一直显示在父窗口的上面。
//标题栏和装饰比较小,就像是无边框线。
//并且此工具窗口无任务栏显示,不会获取焦点
setWindowFlags(Qt::Tool);

//设置后窗口将不受窗口管理器的限制,该标志只在linux下生效,windows下将被忽略,因为 Windows 使用的是另一种窗口系统
//主要功能是:不让该窗体抢占焦点
setWindowFlags(Qt::X11BypassWindowManagerHint);

//自定义窗口标题栏,如果不设置显示标题栏和添加按钮,则不显示标题栏。
setWindowFlags(Qt::CustomizeWindowHint);

//显示标题栏
setWindowFlags(Qt::WindowTitleHint);     

//下面这种写法,只能生效最后一个设置的标志。
setWindowFlags(Qt::WindowMinimizeButtonHint);//添加最小化按钮
setWindowFlags(Qt::WindowMaximizeButtonHint);//添加最大化按钮
setWindowFlags(Qt::WindowMinMaxButtonsHint); //添加最小化按钮和最大化按钮
setWindowFlags(Qt::WindowCloseButtonHint);   //添加关闭按钮

//如果需要一次性生效
setWindowFlags(Qt::WindowMinimizeButtonHint | Qt::WindowCloseButtonHint | Qt::WindowMaximizeButtonHint);

2.Qt::WA_DeleteOnClose
(1)调用close()方法,会向widget发送一个关闭事件(QCloseEvent),如果widget接受了关闭事件,窗口将会隐藏(实际上调用hide())。如果widget不接受关闭事件,那么窗口将什么也不做。也就是说close()方法只会隐藏窗口对象而已,并不会销毁该对象。
(2)倘若设置了WA_DeleteOnClose属性,它接收到QCloseEvent事件后,除了调用hide()方法将窗口隐藏外,同时会调用deleteLater()方法将窗口释放掉,不会再占用资源。

二、注意

1.最大化按钮失效置灰的问题

MainWindow的最大宽度、高度必须为QT 规定的默认值。
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT 常用setAttribute 、setWindowFlags 的相关文章

  • Debian 10(buster) 更换可用的国内软件源

    由于Debian 10 xff08 buster xff09 还比较新 xff0c 有很多源都使用不了 xff0c 有的还连接不上 xff0c 以下是亲自试过可以使用的源 xff0c 需要的小伙伴可以试试 163源 deb cdrom De
  • ubuntu 下搭建 Jenkins 并配置部署环境

    转载 xff1a https www cnblogs com shuoer p 9471839 html 前言 xff1a 因为要搭建Jenkins xff0c 试了很多办法都不行 xff0c 后来找到这篇博客装好了 xff0c 分享下 x
  • 批处理文件(.dat/.cmd)打开多个文件

    在window下 xff0c 有时候经常需要一次性打开多个文件 xff0c 如果都在一个目录下还好 xff0c 但是如果需要打开的文件分布在各个地方 xff0c 逐一打开还是挺麻烦的 通过批处理可以偷下懒 废话少说 xff0c 例文如下 x
  • STC 定时器/计数器2 操作详解 (基于STC89C52RC参考文档)

    一 认识STC定时器2 T2 STC 定时器2 xff08 即T2 xff09 是一个16位定时 计数器 通过设置特殊功能寄存器T2CON中的C T2位 xff0c 可将其作为定时器或计数器 xff08 特殊功能寄存器T2CON的描述如表1
  • 第五周作业 C题

    C题 平衡字符串 题目描述 xff1a 一个长度为 n 的字符串 s xff0c 其中仅包含 Q W E R 四种字符 如果四种字符在字符串中出现次数均为 n 4 xff0c 则其为一个平衡字符串 现可以将 s 中连续的一段子串替换成相同长
  • 第八周作业 B题

    B 猫猫向前冲 题目描述 xff1a 众所周知 xff0c TT 是一位重度爱猫人士 xff0c 他有一只神奇的魔法猫 有一天 xff0c TT 在 B 站上观看猫猫的比赛 一共有 N 只猫猫 xff0c 编号依次为1 xff0c 2 xf
  • Linux安装Git和GitLab,最新教程,细到极致

    大家早上好呀 xff0c 又到了周末了 xff0c 心情很舒服 摸鱼了一上午 xff0c 想要写点东西 今天给大家带来的是 xff0c git和GitLab的安装 快速定位到Gitlab安装 话不多说 xff0c 开始吧 1 创建git文件

随机推荐