• qml练习


    import QtQuick 2.12
    import QtQuick.Window 2.12
    import QtQuick.Controls 2.0
    import QtQuick.Controls.Styles 1.4
    
    Window {
        visible: true
        id:win
         800
        height: 600
        title: qsTr("QML 变色")
        property string windowColor: ""
        //color: y?'#00FFFF':'#EFFBFB'
        Rectangle
        {
    
            id: mainRectangle
            anchors.fill: parent
            color: '#D8D8D8'
    //        gradient: Gradient {
    //            GradientStop {  position: 0.0;    color: "#EFFBFB"  }
    //            GradientStop {  position: 1.0;    color: "#D8D8D8" }
    //        }
    
            Rectangle
            {
                anchors.top:parent.top
                anchors.topMargin: 30
                anchors.left:parent.left
                anchors.leftMargin: 100
                border.color: '#000000'
                border. 2
                600
                height:400
                gradient: Gradient {
                    GradientStop {  position: 0.0;    color: "#EFFBFB"  }
                    GradientStop {  position: 1.0;    color: "#00FFFF" }
                }
    
                Grid
                {
                    anchors.top: parent.top
                    anchors.topMargin: 30
                    anchors.left: parent.left
                    anchors.leftMargin: 10
                    rows: 2
                    columns: 5
                    spacing: 20
    
                    Repeater
                    {
                        model: 14
    
                        Button
                        {
                            id:index
                            //text:getRectColor()
                             100
                            height: 50
                            //color: getRectColor()
    
                            onClicked:
                            {
                                btnClick();
                            }
    
                            function btnClick()
                            {
                                win.windowColor = getRectColor()
                                colorLable.text = "当前选中颜色:" + win.windowColor
                                mainRectangle.color = getRectColor()
                                mainRectangle.state = 'clicked'
    
                            }
    
                            background: Rectangle
                            {
                                implicitWidth: 100
                                implicitHeight: 50
                                color: getRectColor()
                            }
    
                            function getRectColor()
                            {
                                if(Positioner.index === 0)
                                    return '#F5A9A9'
                                else if(Positioner.index === 1)
                                    return 'Red'
                                else if(Positioner.index === 2)
                                    return '#F3F781'
                                else if(Positioner.index === 3)
                                    return '#DA81F5'
                                else if(Positioner.index === 4)
                                    return '#0404B4'
                                else if(Positioner.index === 5)
                                    return '#0B6138'
                                else if(Positioner.index === 6)
                                    return '#0B610B'
                                else if(Positioner.index === 7)
                                    return '#DBA901'
                                else if(Positioner.index === 8)
                                    return '#81F79F'
                                else if(Positioner.index === 9)
                                    return '#D8F6CE'
                                else if(Positioner.index === 10)
                                    return '#A9F5F2'
                                else
                                    return '#F5A9A9'
                            }
    
    
                        }
                    }
    
                }
    
    
            }
    
            states: [
                State {
                    name: "clicked"
                    PropertyChanges { target: mainRectangle; color: win.windowColor }
                }
            ]
    
            Text
            {
                anchors.top:parent.top
                anchors.topMargin: 480
                anchors.left:parent.left
                anchors.leftMargin: 100
                id: colorLable
                x:34; y:20
    
                text: "当前选中颜色:"// + value
                font.pixelSize: 24
    
            }
        }
    }

    import QtQuick 2.12
    import QtQuick.Window 2.12
    import QtQuick.Controls 2.0
    import QtQuick.Controls.Styles 1.4
    
    Window {
        //property Component myconponent: comp1
        id:win1
        visible: true
         800
        height: 600
        title: qsTr("Qml 变色 可增删")
        property string windowColor: ""
        Rectangle
        {
    
            id: mainRectangle
            anchors.fill: parent
            color: '#D8D8D8'
    //        gradient: Gradient {
    //            GradientStop {  position: 0.0;    color: "#EFFBFB"  }
    //            GradientStop {  position: 1.0;    color: "#D8D8D8" }
    //        }
    
            Rectangle
            {
                anchors.top:parent.top
                anchors.topMargin: 30
                anchors.left:parent.left
                anchors.leftMargin: 100
                border.color: '#000000'
                border. 2
                600
                height:400
                gradient: Gradient {
                    GradientStop {  position: 0.0;    color: "#EFFBFB"  }
                    GradientStop {  position: 1.0;    color: "#00FFFF" }
                }
    
                Grid
                {
                    id:grid1
                    property int index: 0
                    signal createIt()
                    signal delVal
                    anchors.top: parent.top
                    anchors.topMargin: 30
                    anchors.left: parent.left
                    anchors.leftMargin: 10
                    rows: 2
                    columns: 5
                    spacing: 20
    
                    function createItem() {
                        console.log("createItem")
                        console.log(grid1.index)
                        var component = Qt.createComponent("Rect.qml")
                        var it1;
                        if (component.status === Component.Ready) {
                            it1 = component.createObject(grid1);
                            it1.sendColor.connect(changeColor)
                        }
                        function changeColor(msg)
                        {
                            mainRectangle.color = msg
                        }
    //                    function onDisDeleteThis() {
    //                        //grid1.sourceComponent = undefined
    
    //                    }
    
    
                        grid1.index++
                    }
    
                    //Component.onCompleted: createItem()
    
    //                function loadComp1()
    //                {
    //                    Loader {
    //                        id: loader1
    //                        sourceComponent: comp1
    
    //                        function onDisDeleteThis() {
    //                            loader1.sourceComponent = undefined
    //                        }
    //                    }
    //                }
                }
    
    
            }
    
    
            states: [
                State {
                    name: "clicked"
                    PropertyChanges { target: mainRectangle; color: win.windowColor }
                }
            ]
    
            Text
            {
                anchors.top:parent.top
                anchors.topMargin: 480
                anchors.left:parent.left
                anchors.leftMargin: 100
                id: colorLable
                x:34; y:20
    
                text: "当前选中颜色:"// + value
                font.pixelSize: 24
    
            }
    
            Button {
                 100
                height: 50
                anchors.top:parent.top
                anchors.topMargin: 480
                anchors.left:parent.left
                anchors.leftMargin: 600
                onClicked: {
                    grid1.createItem()
                    console.log("buttonclick")
                }
            }
    
    
    
        }
    
    
    
    
    
    
    
    }

    import QtQuick 2.12
    import QtQuick.Window 2.12
    import QtQuick.Controls 2.0
    import QtQuick.Controls.Styles 1.4
    
    //Item {
    //    id:it1
    //Component {
    //    id:re
    Rectangle
    {
        id:index
        signal sendColor(string msg)
        //text:getRectColor()
         100
        height: 50
        color: getRectColor()
        property string recColor: getRectColor()
    
        function btnClick()
        {
            win.windowColor = getRectColor()
            colorLable.text = "当前选中颜色:" + win.windowColor
            mainRectangle.color = getRectColor()
            mainRectangle.state = 'clicked'
    
        }
    
        MouseArea {
            id:comp1MouseArea
            property int pressAndHoldDuration:2000
            property int isPress: 0
            signal myPressAndHold()
            anchors.fill: parent
            acceptedButtons: Qt.LeftButton
    
            onPressed: {
                isPress = 1
                pressAndHoldTimer.start();
            }
    
            onReleased: {
                pressAndHoldTimer.stop();
                if(isPress === 1)
                {
                    isPress = 0
                    console.log("short click!")
                    cir1.visible = false
                    index.sendColor(recColor)
                }
            }
    
            onMyPressAndHold: {
                console.log("pressandhold")
                cir1.visible = true
            }
    
            Timer{
                id: pressAndHoldTimer
                interval: parent.pressAndHoldDuration
                running:false
                repeat:false
                onTriggered: {
                    parent.isPress = 0;
                    parent.myPressAndHold();
    
                }
    
            }
        }
    
        Rectangle{
            id:cir1
            visible: false
             10
            height: 10
            radius: 5
            anchors.bottom:parent.top
            anchors.bottomMargin: -5
            anchors.left:parent.right
            anchors.leftMargin: -5
            Rectangle{
                anchors.verticalCenter: parent.verticalCenter
                10
                height:1
                color:"black"
                rotation:45
            }
            Rectangle{
                anchors.verticalCenter: parent.verticalCenter
                10
                height:1
                color:"black"
                rotation:135
            }
            MouseArea {
                id:cirMouseArea
                anchors.fill: parent
                acceptedButtons: Qt.LeftButton
    
                onClicked: {
                    //loader1.onDisDeleteThis()
                    index.destroy()
                }
    
            }
        }
    
    //                background: Rectangle
    //                {
    //                    implicitWidth: 100
    //                    implicitHeight: 50
    //                    color: getRectColor()
    //                }
    
        function getRectColor()
        {
            if(Positioner.index === 0)
                return '#F5A9A9'
            else if(Positioner.index === 1)
                return 'Red'
            else if(Positioner.index === 2)
                return '#F3F781'
            else if(Positioner.index === 3)
                return '#DA81F5'
            else if(Positioner.index === 4)
                return '#0404B4'
            else if(Positioner.index === 5)
                return '#0B6138'
            else if(Positioner.index === 6)
                return '#0B610B'
            else if(Positioner.index === 7)
                return '#DBA901'
            else if(Positioner.index === 8)
                return '#81F79F'
            else if(Positioner.index === 9)
                return '#D8F6CE'
            else if(Positioner.index === 10)
                return '#A9F5F2'
            else
                return '#F5A9A9'
        }
    
    
    }
    //    }
    
    //}
  • 相关阅读:
    经验光照模型整理
    桥接模式下主机ping不通虚拟机,虚拟机能ping主机?kdump failed
    Vue项目目录结构分析
    interface{} 指针 bool 取值
    mac read-only file
    01Prism WPF 入门实战
    C#实现约瑟夫环数学问题
    SqlServer根据某列来分组后,再依据另一列来排序,选取第一行,后再依据另一列进行筛选,之后再统计数量
    2.算法分析-时间复杂度和空间复杂度
    1.数据结构和算法概述
  • 原文地址:https://www.cnblogs.com/qijunzifeng/p/14690587.html
Copyright © 2020-2023  润新知