2016-10-10 33 views
1

任何人都可以幫助我如何只圓形矩形的一個角落,如附圖所示,其中紅色矩形是我的子矩形。有什麼辦法可以爲不同的角落指定不同的半徑

其實,我有一個矩形,其中四個角都圓角(半徑10)。現在,我想在裏面繪製一個新的矩形,並期望只有那些觸及父母圓角的特定角落應該圓角。

enter image description here

Rectangle 
{ 
    id: parent 
    radius: 10 
    width: 168 
    height: 168 
    visible: true 
    color: "black" 

    Rectangle 
    { 
     id: child 
     width: 100 
     height: 40 
     color: "red" 
    } 
} 

我試着用兒童加入剪輯屬性,但什麼也沒發生這樣做。

+0

任何人都可以幫助我實現我想要的以上問題嗎? –

+0

不良習慣有'id:parent','Item'已經有'parent'屬性。 – dtech

+0

你可以使用[canvas](http://doc.qt.io/qt-5/qml-qtquick-canvas.html) – user2436719

回答

1

下面是一個簡單的例子。 它左上角圓角,但很容易調整到任何其他角落。這個解決方案只支持一個角落,但對你來說可能已經足夠了? 更多的角落更復雜一點,所以再問一次,你是否也需要這些。

Rectangle { 
    anchors.centerIn: parent 
    id: root 
    radius: 20 
    width: 300 
    height: 300 

    Rectangle { 
     id: clipper 
     width: 100 
     height: 100 
     color: 'transparent' 
     clip: true 

     Rectangle { 
      id: clipped 
      width: parent.width + radius 
      height: parent.height + radius 
      radius: root.radius 
      color: 'red' 
     } 
    } 
} 
+0

WoW,非常感謝。這是我想要的。我瞭解它背後的訣竅。再次感謝。 –

1

不與股票Rectangle

相同的半徑被所有4度角;目前沒有辦法爲 指定不同角度的不同半徑。

在C++中,您可以指定水平和垂直半徑,但仍不是每角半徑。如果你想要這樣的功能,你將不得不使用幾何節點和全部實現你自己的QQuickItem

想要在圖像中實現的結果也可以通過剪裁來實現,但不幸的是,在QML剪裁中,僅適用於該項目的矩形,而不適用於實際的項目幾何。

使用BorderImage元素可以很容易地達到所需的效果。它能夠爲每一個角落指定一個不同的子圖像:

enter image description here

+0

你也可以使用4個矩形並將它們自己放在一起。這會給你更多的多功能性(改變半徑而不需要縮放圖像或使用多個版本的圖像)。我不知道這個表現有多糟糕。 – derM

+0

那實現了什麼? – dtech

+0

請參閱編輯。在加入理由之前壓回來。 Sry基因。 – derM

相關問題