qtqml

Is there any way to specify different radii for different corners


Can anyone help me how to round only one corner of a rectangle like shown in attached pic where red rectangle is my child rectangle.

Actually, I have a rectangle where all four corners rounded(radius 10). Now, i want to draw a new rectangle inside this and expecting only that particular corner should be rounded who touches the parent's round corner.

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"
    }
}

I tried to do this with adding clip property in child but nothing happened.


Solution

  • Here is a simple example. It is rounded in the upper left corner, but is easily adjusted to any other corner. Only one corner is supported in this solution, but it might be enough for you? More corners are little more complex, so ask again if you would need those aswell.

    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'
            }
        }
    }