首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Qt5 & QtQuick2 -透明主窗口

Qt5 & QtQuick2 -透明主窗口
EN

Stack Overflow用户
提问于 2013-02-08 20:07:33
回答 4查看 5.8K关注 0票数 8

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

main.cpp

代码语言:javascript
复制
#include <QtGui/QGuiApplication>
#include "qtquick2applicationviewer.h"

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QtQuick2ApplicationViewer viewer;

    viewer.setMainQmlFile(QStringLiteral("qml/qtquick-test/main.qml"));
    viewer.setFlags(Qt::FramelessWindowHint);
    viewer.showExpanded();

    return app.exec();
}

main.qml

代码语言:javascript
复制
import QtQuick 2.0

Rectangle {
    width: 360
    height: 360
    radius: 10
    color: "red"

    Text {
        text: qsTr("Hello World")
        anchors.centerIn: parent
    }
    MouseArea {
        anchors.fill: parent
        onClicked: {
            Qt.quit();
        }
    }
}

这就是结果:

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

顺便说一句,我是Qt和Qt5的新手。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-24 10:16:41

这在Windows 8和Ubuntu12.04环境下适用于我。

代码语言:javascript
复制
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
    }
}
票数 5
EN

Stack Overflow用户

发布于 2020-09-01 22:37:38

对任何像我这么晚才发现的人来说。对于C++和Python,至少必须指定小部件属性WA_TranslucentBackground才能使背景透明。

票数 0
EN

Stack Overflow用户

发布于 2014-03-31 06:06:20

你必须用

viewer.setMask()

为了告诉显示qml的qt小部件在哪里绘制和不绘制.

我主要使用矩形掩码,但是setMask接受一个QRegion,我认为它支持更复杂的表单,甚至是位图掩码

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14780504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档