Qt 中 setAttribute的使用方法

497 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情

前言

在setAttribute函数中,它有两个参数,但是第二个参数已经设了默认值TRUE 因此我们在使用的过程中可写可不写。他用于设置一些基本的窗口属性。它不仅适用于窗口中,他也可以用来设置哥哥小空间,大家都是同样的用法。

函数定义: void setAttribute(Qt::WidgetAttribute, bool on = true);

 

Qt::WA_DeleteOnClose 这条语句代表 在退出页面的时候,系统会自己delete掉这个页面,从而减少内存泄漏的问题。

WA_TranslucentBackground  设置成为透明窗口 等同于在控件的setStyleSheet中设置:background: transparent  

Qt::WA_TransparentForMouseEvents 这句表示鼠标具有穿透性,也就是说在使用这句话的控件上,将会对全部的鼠标事件进行跳过,同时包括他的子控件中。但是其他不包括这个控件的控件还是会使用鼠标事件。不会受他的影响。

  Qt::WA_NoMouseReplay 这一句用于弹出指示框,但是要注意的是他在关闭以后会有操作,如果在关闭后又按下最近操作的按钮  他会进行清除处理

Qt::WA_AcceptTouchEvents 这句话表示 当前界面可以接受触屏控制,不仅仅接受键盘或鼠标事件。

Qt::AA_ShareOpenGLContexts: 他使用在可以在进程之间共享的OpenGL上下文。

但是要注意的是,他的创建条件,他必须创建在QGuiApplication之后,再窗口完成之间创建好。最好是将他创建在构造函数中,但是一定要注意他的创建位置。

  Qt::AA_UseOpenGLES 再出现花屏或者黑屏的时候。

Qt::AA_EnableHighDpiScaling 用于设置高清屏的布局与原设定的一样 防止出现空间变乱等情况。

 

总结

在setAttribute的使用过程中,他的属性特征都比较南岔,所以我把常使用的一些以及我在查询过程中独到的一些进行了整理。大家根据需要自取!