x86银河麒麟服务器版Qt无法实现透明窗口的问题

        同样一段代码,在windows、arm麒麟服务器V10平台下可以实现透明窗口,在x86麒麟服务器v10上无法实现透明窗口,变成了背景为黑色的窗口,经过探索,发现是因为x86麒麟的mate桌面默认没用开启某些功能。

        Qt帮助文档中关于透明窗口的说明:

        X11: This feature relies on the use of an X server that supports ARGB visuals and a compositing window manager. X11(linux):此特性依赖于能提供支持ARGB视觉效果和复合式视窗管理的X服务的功能开启。

        使用[static] bool QX11Info::isCompositingManagerRunning(int screen = -1)函数判断,发现x86麒麟下返回为false,arm麒麟下返回为true。

        在x86麒麟下,使用gsettings set org.mate.Marco.general compositing-manager "true"开启mate桌面的compositing-manager复合管理器,再次调用isCompositingManagerRunning返回为true,之后x86麒麟下qt可以实现透明窗口。

        麒麟下Qt实现透明窗口的代码为:

    setAutoFillBackground(false);
    setWindowOpacity(0);

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值