2012-04-09 4 views
3

QMLグラジエントでは、矩形の上から下へのみ許可されます。 documentationは、 は回転とクリッピングの組み合わせで行う必要があると言います。オリエンテーション付きのQMLグラジエント

私はちょうどQMLを学び始めました(そしてHTML/CSSの経験もほとんどありません)。ここで私は多くの方のために改善することができると思う私のコードは次のとおりです。

import QtQuick 1.0 

Rectangle { 
    width: 400; height: 400; 

    Rectangle { 
    width: 567; height: 567; 

    gradient: Gradient { 
      GradientStop { 
     position: 0.0; 
     color: "white"; 
     } 
      GradientStop { 
     position: 1.0; 
     color: "blue"; 
     } 
    } 
    x: 116.5; 
    transformOrigin: Item.Top; 
    rotation: 45.0; 
    } 
} 

あなたがこれを行うには良い方法であるかを提案してくださいことはできますか?

答えて

2

私はドキュメントが正しいことを恐れています。 私が考えることができる唯一の他の方法は、あなたが望むことをするC++でカスタムQMLコンポーネントを書くことです。

あなたはQT/C++の知識をお持ちの場合は、ここに始めることができ:

をRectangleが良いテンプレートやベースクラスのようになります。

5

私は、次のコードで、このproblingを解決しました:

Rectangle { 
     width: parent.height 
     height: parent.width 
     anchors.centerIn: parent 
     rotation: 90 

     gradient: Gradient { 
      GradientStop { position: 0.0; color: "black" } 
      GradientStop { position: 1.0; color: "white" } 
     } 
    } 

そして、これがうまく機能している:ここでhttps://code.google.com/p/ytd-meego/source/browse/trunk/playground/FeedBook/qmltube/HorizontalGradient.qml?r=144

は、私がNielsMayerの例を使用して行われてきたものです。楽しむ !

+0

本当に素晴らしいトリックは、魅力のように機能します。私は同じことをしましたが、アンカーを追加するのを忘れてしまいました。 – Werolik

+0

私は理解していませんが、これはどのようにあなたのために働くのですか? * Rotate * * Child * Rectangleの場合、* Parent * Rectangleの外側に移動します。これは私が私のために述べたとおりに動作します。 http://storage2.static.itmages.com/i/17/0802/h_1501648599_3384672_6ac0b27d3e.png これは強固ではないトリックです。 LinearGradientのようなすべてのケースで動作しません。 – general656

3

Qt 5.1で導入されたQtグラフィカルエフェクトモジュールには、3つの勾配タイプがあります。 LinearGradientアイテム(効果)では、水平の色勾配を実現するために回転を適用する必要はなくなりました。 特にLinearGradientは、そのstartendポイント(属性)を使用して、の勾配方向をとすることができます。

import QtQuick 2.0 
import QtGraphicalEffects 1.0 

Item { 
    width: 300 
    height: 300 

    LinearGradient { 
     anchors.fill: parent 
     start: Qt.point(0, 0) 
     end: Qt.point(0, 300) 
     gradient: Gradient { 
      GradientStop { position: 0.0; color: "white" } 
      GradientStop { position: 1.0; color: "black" } 
     } 
    } 
} 
関連する問題