在 Qt 5.1.0 文档中它说
无效 QQuickWindow::setDefaultAlphaBuffer(bool useAlpha)
useAlpha 指定是否在新创建的窗口上使用 alpha 透明度。
在任何希望创建半透明窗口的应用程序中,有必要
在创建第一个 QQuickWindow 之前将其设置为 true,因为所有窗口将共享相同的 QOpenGLContext。默认值为假。
我已经使用这个函数创建了一个带有 QQuickView 的透明背景,但是据我所见,它没有改变任何东西(在 Windows 7 上),这是我的代码:
QQuickWindow::setDefaultAlphaBuffer(true);
QQuickView view;
view.setColor(Qt::transparent);
view.setSource(QUrl::fromLocalFile("test.qml");
view.setResizeMode(QQuickView::SizeRootObjectToView);
bool b = view.hasDefaultAlphaBuffer();
QWidget* p = QWidget::createWindowContainer(&view, NULL, Qt::FramelessWindowHint);
p->setAttribute(Qt::WA_TranslucentBackground);
p->show();
这是我的test.qml:
import QtQuick 2.0
Rectangle
{
width: 300;
height: 300;
color: "transparent"
Rectangle
{
x: 50;
y: 50;
width: 100;
height: 100;
color: "blue";
}
}
那么这个功能有什么用呢?