diff --git a/CMakeLists.txt b/CMakeLists.txt index a223e41..c0d4e1d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,8 @@ qt_add_qml_module(appESP32_upper VERSION 1.0 QML_FILES Main.qml + QML/pages/HomePage.qml + QML_FILES QML/models/TestModels.qml ) # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1. diff --git a/Main.qml b/Main.qml index 41424f8..2e9aeab 100644 --- a/Main.qml +++ b/Main.qml @@ -1,8 +1,15 @@ import QtQuick +import QtQuick.Window +import ESP32_upper 1.0 Window { - width: 640 - height: 480 + width: 1300 + height: 750 visible: true title: qsTr("Hello World") + + HomePage { + id: id_home_page + + } } diff --git a/QML/models/TestModels.qml b/QML/models/TestModels.qml new file mode 100644 index 0000000..d82818e --- /dev/null +++ b/QML/models/TestModels.qml @@ -0,0 +1,48 @@ +import QtQuick 2.15 + +ListModel { + ListElement { + name: "Bill Smith" + number: "555 3264" + } + ListElement { + name: "John Brown" + number: "555 8426" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + ListElement { + name: "Sam Wise" + number: "555 0473" + } + } diff --git a/QML/pages/HomePage.qml b/QML/pages/HomePage.qml new file mode 100644 index 0000000..9ea2193 --- /dev/null +++ b/QML/pages/HomePage.qml @@ -0,0 +1,67 @@ +import QtQuick 2.15 +import QtQuick.Controls +import QtQuick.Layouts +import ESP32_upper 1.0 + +Item { + id: root + + Rectangle { + width: 180 + height: Window.height + color: "green" + + Component { + id: contactDelegate + // property int my_index: index + Rectangle { + width: 150; height: 60 + anchors.left: parent.left // 靠父组件左边 + anchors.leftMargin: 15 // 左边距20像素 + radius: 5 + MouseArea { + id: mouseArea + anchors.fill: parent + hoverEnabled: true + onClicked: { + // id_view.view.currentIndex = id_view.view. + console.log("Clicked on", name) + + } + onEntered: { + parent.color = "red" + } + onExited: { + parent.color = "white" + } + } + Column { + Text { text: 'Name: ' + name } + Text { text: 'Number: ' + number } + + } + + } + + } + MouseArea { + anchors.fill: parent + onWheel: (wheel) => { + wheel.accepted = true; // 处理滚轮事件并阻止事件传递 + id_view.contentY += wheel.angleDelta.y / 120 * 10; // 根据滚轮的滚动方向和量来滚动 ListView + } + ListView { + id: id_view + spacing: 10 + anchors.fill: parent + model: TestModels {} + delegate: contactDelegate + // highlight: Rectangle { color: "lightsteelblue"; radius: 2 } + // focus: true + } + } + + + } + +}