So I got something working using GraphicalEffects:

import QtQuick 2.5
import QtQuick.Window 2.2
import QtQuick.Controls 1.4
import QtGraphicalEffects 1.0

ApplicationWindow {
        id: root
        visible: true

        Component.onCompleted:  {
                button1.checked = true;
        }
        width: 320
        height: 50
        color: "gray"
        ExclusiveGroup { id: buttonGroup }


        Row {
                id: row
                visible:false
                height: parent.height *.5
                width: parent.width *.75
                anchors.centerIn: parent
                Rectangle {
                        property bool checked: false
                        property ExclusiveGroup exclusiveGroup: buttonGroup
                        id: button1
                        width: parent.width/3
                        height: parent.height
                        color: "blue"
                        Text {
                                text:"1"
                                anchors.fill: parent
                                horizontalAlignment: Text.AlignHCenter
                                verticalAlignment: Text.AlignVCenter
                                color: parent.checked ? "black" : "white"
                                font.pixelSize: parent.height /2
                        }
                        MouseArea {
                                anchors.fill: parent
                                onClicked: parent.checked=true
                        }
                        onExclusiveGroupChanged: {
                                if (exclusiveGroup)
                                        exclusiveGroup.bindCheckable(button1)
                        }
                        onCheckedChanged: {
                                color = checked  ? "white" : "blue"
                        }
                }
                Rectangle {
                        property bool checked: false
                        property ExclusiveGroup exclusiveGroup: buttonGroup
                        id: button2
                        width: parent.width/3
                        height: parent.height
                        color: "blue"
                        Text {
                                text:"2"
                                anchors.fill: parent
                                horizontalAlignment: Text.AlignHCenter
                                verticalAlignment: Text.AlignVCenter
                                color: parent.checked ? "black" : "white"
                                font.pixelSize: parent.height /2
                        }
                        onExclusiveGroupChanged: {
                                if (exclusiveGroup)
                                        exclusiveGroup.bindCheckable(button2)
                        }
                        onCheckedChanged: {
                                color = checked  ? "white" : "blue"
                        }

                }
                Rectangle {
                        property bool checked: false
                        property ExclusiveGroup exclusiveGroup: buttonGroup
                        id: button3
                        width: parent.width/3
                        height: parent.height
                        color: "blue"
                        Text {
                                text:"3"
                                anchors.fill: parent
                                horizontalAlignment: Text.AlignHCenter
                                verticalAlignment: Text.AlignVCenter
                                color: parent.checked ? "black" : "white"
                                font.pixelSize: parent.height /2
                        }
                        onExclusiveGroupChanged: {
                                if (exclusiveGroup)
                                        exclusiveGroup.bindCheckable(button3)
                        }
                        onCheckedChanged: {
                                color = checked  ? "white" : "blue"
                        }
                }
        }
        Rectangle {
                visible: false
                id: opacityMask
                color: "black"
                anchors.fill: parent
                radius: height / 4
                clip: true
                smooth: true
        }
        OpacityMask {
                anchors.fill: row
                source: row
                maskSource: opacityMask
        }
        Row {
                anchors.fill: row

                MouseArea {
                        x: button1.x
                        y: button1.y
                        width: button1.width
                        height: button1.height
                        onClicked: button1.checked=true
                }

                MouseArea {
                        x: button2.x
                        y: button2.y
                        width: button2.width
                        height: button2.height
                        onClicked: button2.checked=true
                }
                MouseArea {
                        x: button3.x
                        y: button3.y
                        width: button3.width
                        height: button3.height
                        onClicked: button3.checked=true
                }

        }
}

 

Sent: Tuesday, May 10, 2016 at 1:12 PM
From: "Jérôme Godbout" <jer...@bodycad.com>
To: "Jason H" <jh...@gmx.com>
Cc: "interest@qt-project.org Interest" <interest@qt-project.org>
Subject: Re: [Interest] iOS style menubar?

The only way I got this working is by doing some ShaderEffect with a custom 
FragmentShader. That way you can control the alpha for each fragment and make 
whatever you want. Note, it's not a good idea to have too many of them but for 
some specific task it should be ok. 
 
If you only want to have 2 round corner, you could use rectangle with corner 
and another without above the rounded with smaller dimension of the radius and 
x,y offset according to top/bottom/left/right corner wanted:
 
  
   -----------
  /           \           
 /             \        |--------------|
|               |    +  |              |
|               |       |              |
 \             /        |              |
  \-----------/         |______________|
 
z: 0                     z:1
 
On Tue, May 10, 2016 at 12:56 PM, Jason H <jh...@gmx.com> wrote:I'm looking for 
a toggle-able mnubar, iOS style. It should be easy enough, except that it is 
rounded on two corners (left or right edge).

Does anyone know how to to just 2 rounded corners or of a complete QML item?
_______________________________________________
Interest mailing list
Interest@qt-project.org[Interest@qt-project.org]
http://lists.qt-project.org/mailman/listinfo/interest
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to