当前位置:编程学习 > wap >>

qt 5.1.0 window7 下窗体阴影设置透明后是黑色求解决

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QQmlApplicationEngine engine(QUrl("qrc:/qml/main.qml"));
QObject *topLevel = engine.rootObjects().value(0);
QQuickWindow *window = qobject_cast<QQuickWindow *>(topLevel);
window->setColor(QColor(Qt::transparent));
QWidget* p = QWidget::createWindowContainer(window, NULL, Qt::FramelessWindowHint);
//p->setWindowOpacity(0);
p->setAttribute(Qt::WA_TranslucentBackground,true);
p->setStyleSheet("background:transparent;");
p->setAutoFillBackground(false);
p->show();
return app.exec();
}

qml:

import QtQuick 2.1
import QtQuick.Controls 1.0
import QtQuick.Window 2.0

Window {
    title: qsTr("Hello World")
    width: 640
    height: 480

    //color : "transparent"
    Image {
        id: bg
        source: "../images/bg_02.png"
        anchors.fill: parent
    }
}




运行结果如下:
--------------------编程问答-------------------- 貌似Win7透明就是这效果
自己根据实际要求改改背景吧,设置个透明度的背景色 --------------------编程问答-------------------- 没有呀在mac上都是可以的。 --------------------编程问答-------------------- 我方的那张图片边框阴影都是透明渐变的只要设置alpha值true就好的,但是win7下qt5.1.0透明区域就编程黑色了 --------------------编程问答--------------------
引用 1 楼 xiuxianshen 的回复:
貌似Win7透明就是这效果
自己根据实际要求改改背景吧,设置个透明度的背景色

+1

不同的平台,透明效果不一样。 --------------------编程问答--------------------
引用 2 楼 dynamicsystem 的回复:
没有呀在mac上都是可以的。

这个问题Qt5.1 beta时Mac上也是黑的,Qt5.1 release 解决了。
所以Win7出现这个问题不奇怪,不同平台是不一样的。 --------------------编程问答--------------------
引用 5 楼 Inhibitory 的回复:
Quote: 引用 2 楼 dynamicsystem 的回复:

没有呀在mac上都是可以的。

这个问题Qt5.1 beta时Mac上也是黑的,Qt5.1 release 解决了。
所以Win7出现这个问题不奇怪,不同平台是不一样的。


也就是说qt5.1自己的bug了
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,