Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
第五季及;QtQuick2-透明主窗口_Qt_Qml_Qt5_Qtquick2 - Fatal编程技术网

第五季及;QtQuick2-透明主窗口

第五季及;QtQuick2-透明主窗口,qt,qml,qt5,qtquick2,Qt,Qml,Qt5,Qtquick2,我试图创建一个简单的QtUI,它有一个无框窗口和圆角。从使用QtQuick 2应用程序模板的新项目开始,我的代码如下所示: main.cpp 这就是结果: 我不想做的是通过使主窗口透明来去除白色角落。然而,据我所知,在Qt5中没有办法做到这一点,因为我们没有样式表等,我也没有使用QtWidget。我应该使用QtWidget吗 顺便说一句,我不熟悉Qt和Qt5。在应用程序查看器上设置背景清晰颜色,使alpha为0: viewer.setColor(QColor(0, 0, 0, 0)); 您必

我试图创建一个简单的QtUI,它有一个无框窗口和圆角。从使用QtQuick 2应用程序模板的新项目开始,我的代码如下所示:

main.cpp

这就是结果:

我不想做的是通过使主窗口透明来去除白色角落。然而,据我所知,在Qt5中没有办法做到这一点,因为我们没有样式表等,我也没有使用QtWidget。我应该使用QtWidget吗


顺便说一句,我不熟悉Qt和Qt5。

在应用程序查看器上设置背景清晰颜色,使alpha为0:

viewer.setColor(QColor(0, 0, 0, 0));

您必须使用查看器.setMask()
来告诉显示qml的qt小部件在何处绘制以及在何处不绘制


我使用的大多是矩形掩码,但setMask接受一个QRegion,我认为它支持更复杂的表单,甚至支持位图掩码。这在Windows 8和Ubuntu 12.04下对我很有效

import QtQuick 2.3
import QtQuick.Window 2.2

Window {
    width: 300
    height: 300
    flags: Qt.FramelessWindowHint | Qt.Window
    color: "transparent"

    Rectangle {
        color: "brown"
        anchors.fill: parent
        anchors.margins: 10
    }
}

对于任何像我一样在这么晚的时候偶然发现的人。对于C++和Python,至少必须指定WITGET属性<代码> WauTurnLuxTebug 才能使您的背景透明。

看起来,这可能在5.1中通过使用WEATE > QWIDGET::CealEndoWistCuulter()/<代码>创建一个窗口作为容器窗口来解决。请参阅和。我将尝试从源代码处编译5.1,看看是否可以运行。@andrewrjones您可以回答并接受自己的问题。@MottiStrom从未找到答案,而是继续使用其他内容。这在Qt 5.0中不起作用。你的背景是黑色的,不是透明的。谢谢马库斯!差不多就是这样。在Mac上,我只需在窗口中添加
visible:true
,在矩形中添加
radius:10
,就可以得到我想要的东西。将此作为示例项目上载到GitHub:非常好,很高兴它成功了。:)谢谢你在回购协议中提到我。
viewer.setColor(QColor(0, 0, 0, 0));
import QtQuick 2.3
import QtQuick.Window 2.2

Window {
    width: 300
    height: 300
    flags: Qt.FramelessWindowHint | Qt.Window
    color: "transparent"

    Rectangle {
        color: "brown"
        anchors.fill: parent
        anchors.margins: 10
    }
}