首页 文章

QML:使用onclick设置矩形的颜色

提问于
浏览
0

我对QT和QML一般都比较新 . 我看过一些例子,当按下一个矩形时,可以改变一些外部对象(如文本)的颜色 . 但是,我想做一些相关的事情,但不同 .

Setup:

我想要一个矩形网格 . 比方说5x5网格 . 所有这些矩形都可以是蓝色 . 尺寸并不重要 .

Example:

  • 如果我按(0,0)处的矩形,其颜色应变为红色 .

  • 如果我按(0,1)处的矩形,它的颜色也应该变为红色 .

  • 如果矩形为红色并按下它,它应恢复为蓝色 .

理想情况下,我还想知道哪些矩形是红色,哪些是蓝色 . 希望我以后可以解决这个问题 . 现在,如果有人可以帮我开始改变颜色,那将非常有用 . 了解如何在按下时更改单个Rectangle的颜色将非常有帮助 . 先感谢您!

1 回答

  • 0
    Item {
    id: root
    width: 500
    height: 500
    
    Column {
        Repeater {
            id: column
            model: 5
            Row {
                Repeater {
                    id: row
                    model: 5
                    Rectangle {
                        id: rect
                        property bool isBlue: true
                        width: 100
                        height: 100
                        color: isBlue ? "blue" : "red"
                        border.color: "white"
                        border.width: 5
                        Text {
                            font.pixelSize: 15
                            anchors.centerIn: parent
                            text: rect.isBlue ? "blue" : "red"
                            color: "white"
                        }
    
                        MouseArea {
                            anchors.fill: parent
                            onClicked: {
                                rect.isBlue = !rect.isBlue
                            }
                        }
                    }
                }
            }
        }
    }
    

    }

相关问题