質問

長方形/画面の透明性を設定する方法。

次のコードがあります:

// main.cpp
void main(int argc, char*[] argv)
{
    QApplication::setGraphicsSystem("raster");
    QApplication app(argc, argv);

    QDeclerativeView view;
    view.setSource(QUrl::fromLocalFile("loaderTest.qml"));

    view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
    view.showFullScreen();

    //QRegion mask(10, 10,  100, 100);
    //view.setMask();

    view.show();
    app.exec();
}

QMLファイルは次のとおりです。

//loaderTest.qml
Rectangle
{
    id: mainRectangle
    width: 1000
    height: 700
    color: "transparent"
    //color: "#00000000"

    Image
    {
        id: image1;
        width: 348;
        height: 155;
        anchors.horizontalCenter: parent.horizontalCenter;
        anchors.verticalCenter: parent.verticalCenter;
        source: "test.png"
    }

    Loader
    {
        id: mainLoader
        anchors.fill: parent;
        source: "";
        focus: true;
    }
}

この画面には1つのローダーと1つの画像があり、背景色は透明です。このアプリケーションを実行すると、中央に画像が付いた透明な背景を表示する必要があります(ローダーソースを設定していないため)。

しかし、私が得ているのは、画面に白い背景が入った中央の画像です。透明な色を背景として言及したように、この白い背景の色を誰が埋めているのかわかりません。

Qt.4.7.0とLinuxを使用しています。

ターゲットシステムには2つの平面があり、1つはビデオプレーンで、もう1つはグラフィックプレーンです。透明な背景を持つGUIを実行すると(ビデオプレイスで透明性が設定されています)、上記の例でビデオの場所にビデオを表示する必要があります。ビデオプレーンでビデオを再生することを表示する必要があります。

役に立ちましたか?

解決

デフォルトでは、QDeclarativeViewは背景をペイントします。たぶんそれがあなたの場合の問題です。

から http://doc.qt.nokia.com/4.7/qdeclarativeperformance.html

また、QMLを使用してアプリケーションの背景を提供する場合、QDeclarativeViewがウィンドウの背景をペイントするのを防ぐこともできます。

 QDeclarativeView window;
 window.setAttribute(Qt::WA_OpaquePaintEvent);
 window.setAttribute(Qt::WA_NoSystemBackground);
 window.viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
 window.viewport()->setAttribute(Qt::WA_NoSystemBackground);

他のヒント

私の最初の推測では、背景は白で、長方形は実際には完全に透明であるということです。

ローダースクリーンとは、ある種のQDecalarativeViewのようなものだと思います。技術的なミスがQT/QMLをほぼ1年間コーディングしていないことを許してください。私が覚えているように、ビューのデフォルトの背景は白で、とにかくどのような透明性を透明にしたいと思っていますか?

qpushbuttonに背景色を設定する場合、境界プロパティを何らかの価値に設定しない限り、背景は表示されない場合があります。これは、デフォルトでは、Qpushbuttonが背景色と完全に重複するネイティブの境界線を描くためです。これは、Qpushbuttonの周りに黒い長方形の箱を示すかもしれません。特にLinuxマシンでこの問題に直面します。これを避けるために、あなたは国境の財産を誰にも設定することができます

widget-> setstylesheet( "border:none");

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top