2016 - 2024

感恩一路有你

linux qt界面开发 Qt怎么设置主窗口透明(可以设置透明度)上面的子控件不透明?

浏览量:2897 时间:2021-03-15 22:10:20 作者:admin

Qt怎么设置主窗口透明(可以设置透明度)上面的子控件不透明?

Setwindowopacity(0.7)在构造函数中使用。如果要动态修改,则需要重新计算并绘制背景。这个工作量非常大,不太可能提供这样的方法。R您可以查看QT的setwindowopacity的源代码,并将其集成到您自己的代码中。或者,修改不透明度后,可以强制刷新整个客户端区域。

Qt中设置窗口背景透明?

附件是渲染。QT提供了setopacity的功能,但是使用之后,窗体的所有子控件都变成相同的透明色。这里,我们使用setmask()函数,以qbitmap为参数,对qbitmap进行精细的操作(关键是qbitmap支持painter直接在其上作画)。最后,我们可以达到这样的效果:我们想要透明的地方变成透明的,我们想要放置零件的地方变成不透明和可见的。这样,就达到了我们想要的效果。具体的实现方法也很简单:如果要在paintevent中绘制任何东西,也应该同时在qbitmap上绘制。前提是在qbitmap上绘制时,笔刷的RGB设置为qrgb(0,0,0)。我已经说清楚了。您可以在自己的类中对代码进行实验。这个例子只是最简单的演示。按照这个思路,我觉得我们可以做越来越灵活的应用,比如在透明和非透明之间做表单(这里我们需要准备一个相应的透明PNG图像,或者使用相应的QT函数来做)。最重要的是,此方法中透明度的操作不会影响子控件的操作。

linux qt界面开发 qt设置stylesheet透明 linux qt开发教程

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。