8

フレームレス ウィンドウと丸みを帯びた角を持つシンプルな Qt UI を作成しようとしています。QtQuick 2 アプリケーションテンプレートを使用した新しいプロジェクトから開始すると、私のコードは次のようになります。

main.cpp

#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

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();
        }
    }
}

そして、これが結果です:

そして、これが結果です

私がやりたくないのは、メイン ウィンドウを透明にして、白い角を取り除くことです。ただし、スタイルシートなどがなく、QtWidget を使用していないため、Qt5 でこれを行う方法はありません。QtWidget を使用する必要がありますか?

ところで、私は Qt と Qt5 が初めてです。

4

4 に答える 4

5

これは、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
    }
}
于 2014-11-24T10:16:41.797 に答える
-2

アプリケーション ビューアで背景のクリア カラーのアルファが 0 になるように設定します。

viewer.setColor(QColor(0, 0, 0, 0));
于 2013-06-12T15:16:03.013 に答える