在Qt 5.1.0文档中,它说
void QQuickWindow :: setDefaultAlphaBuffer(bool useAlpha)
useAlpha指定是否在新创建的窗口上使用Alpha透明度。
在任何希望创建半透明窗口的应用程序中,必须将其设置为
在创建第一个QQuickWindow之前为true,因为所有窗口都将共享相同的内容 QOpenGLContext。默认值为false。
我已经使用这个功能用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";
}
}
那么这个功能的用途是什么?
答案 0 :(得分:0)
也许您需要在QQuickView对象上使用该功能:
view.setDefaultAlphaBuffer(true);