QWidget另窗口透明的方法比较多样,但没QML开发界面那么高效。之前用QtQuick 2做了个音乐播放器,但是一直找不到方法另主窗口透明,然后用特效组件使其透明。

今天百度到了一个不错的解决方法。

QtQuick 1

在QtQuick 1 中可以这样使主窗口(背景画布)透明,在main中声明定义:

先设置窗体无边框:

再设置窗体透明:

 QtQuick 2

Qt Quick 2.0 中 QQuickView代替了1.0中的QDeclarativeView

setOpacity可设置整个窗口(包括控件)的透明度,而背景透明则应使用setColor

设置窗口拖动

 

如果是使用Window或ApplicationWindow做根元素,用QQmlApplicationEngine加载启动的话,需要获取到根元素对象或直接在QML里设置就可以了。

获取根对象然后(设置方法同上,不再赘述):

可以直接在根元素里设置:

 

实现阴影效果

最终结果如下图:

屏幕快照 2014-06-16 下午2.39.09