【问题标题】:How to make Widgets background transparent in Qt如何在 Qt 中使小部件背景透明
【发布时间】:2012-04-24 13:50:45
【问题描述】:

我正在构建一个应用程序,其中我只为我的 mainWindow 提供了背景,并且所有其他小部件都在没有任何背景的情况下使用,但是当我运行应用程序时,它们不是 100% 透明的,它们有点半透明,有什么办法可以使它们 100 % 透明,以便只有前景可以出现而没有背景提示。

【问题讨论】:

    标签: qt qt4 symbian


    【解决方案1】:

    您能否发布您目前用来获得透明度的代码?如果你说你得到了“半透明的东西”,我认为你创建的工具窗口并不是你真正想要的。

    可以通过移除标题栏来实现真正透明的主窗口(将 QWidget 构造函数 Qt::FramelessWindowHint 作为第二个参数 - WindowFlags),以不常见的颜色绘制小部件中应该透明的所有内容(如 255,0,255 ) 然后将其切断。

    一个非常原始的截断 QWidget 部分的例子:

    QBitmap b(100, 100);
    b.fill(Qt::black);
    setMask(b);
    

    QBitmap 在应该可见的像素上必须是黑色的,而在不可见的像素上必须是白色的。在此示例中,只有从 0,0 开始的 100,100 区域可见,窗口的其余部分将不可见。

    【讨论】:

    • 正如您在屏幕截图中看到的那样,子小部件显示了自己的背景,但我没有给出任何背景,当我设计这个屏幕时,我离开了设置的样式表。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2017-01-04
    相关资源
    最近更新 更多