From 7c452ae1228b01a3db697b5a74c9dee60dcfe352 Mon Sep 17 00:00:00 2001 From: Petr Nechaev Date: Mon, 3 Aug 2015 14:17:40 +0300 Subject: [PATCH 8/9] Add simple Qt-QML example The example requires qtdeclarative. It outputs values of basic vehicle properties. --- plugins/dbus/amb-qt/CMakeLists.txt | 6 +++++ plugins/dbus/amb-qt/Meter.qml | 46 +++++++++++++++++++++++++++++++++++++ plugins/dbus/amb-qt/qtquicktest.cpp | 12 ++++++++++ plugins/dbus/amb-qt/qtquicktest.qml | 35 ++++++++++++++++++++++++++++ plugins/dbus/amb-qt/qtquicktest.qrc | 6 +++++ 5 files changed, 105 insertions(+) create mode 100644 plugins/dbus/amb-qt/Meter.qml create mode 100644 plugins/dbus/amb-qt/qtquicktest.cpp create mode 100644 plugins/dbus/amb-qt/qtquicktest.qml create mode 100644 plugins/dbus/amb-qt/qtquicktest.qrc diff --git a/plugins/dbus/amb-qt/CMakeLists.txt b/plugins/dbus/amb-qt/CMakeLists.txt index 42b7fb4..99f691b 100644 --- a/plugins/dbus/amb-qt/CMakeLists.txt +++ b/plugins/dbus/amb-qt/CMakeLists.txt @@ -31,10 +31,16 @@ target_link_libraries(ambqtquick amb-qt ${QT_LIBRARIES} -L${CMAKE_CURRENT_BINARY add_executable(ambtestclient test.cpp) target_link_libraries(ambtestclient amb amb-qt ${QT_LIBRARIES} -L${CMAKE_CURRENT_BINARY_DIR}/lib ${link_libraries} ${gio_LIBRARIES}) +qt5_add_resources(ambqtquicktest_RESOURCES qtquicktest.qrc) +add_executable(ambqtquicktest qtquicktest.cpp ${ambqtquicktest_RESOURCES}) +target_link_libraries(ambqtquicktest amb amb-qt ${QT_LIBRARIES} -L${CMAKE_CURRENT_BINARY_DIR}/lib ${link_libraries}) +qt5_use_modules(ambqtquicktest Quick Core) + install (TARGETS amb-qt LIBRARY DESTINATION lib${LIB_SUFFIX}) install (FILES ${ambqt_headers} DESTINATION ${INCLUDE_INSTALL_DIR}/ COMPONENT Devel) install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/qmldir DESTINATION ${LIB_INSTALL_DIR}/qt5/qml/amb COMPONENT Devel) install (TARGETS ambqtquick DESTINATION ${LIB_INSTALL_DIR}/qt5/qml/amb) install (TARGETS ambtestclient RUNTIME DESTINATION bin) +install (TARGETS ambqtquicktest RUNTIME DESTINATION bin) endif(qt_bindings) diff --git a/plugins/dbus/amb-qt/Meter.qml b/plugins/dbus/amb-qt/Meter.qml new file mode 100644 index 0000000..370e4da --- /dev/null +++ b/plugins/dbus/amb-qt/Meter.qml @@ -0,0 +1,46 @@ +/* +Copyright (C) 2015 Cogent Embedded Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ +import QtQuick 2.0 +import amb 0.1 + +Row { + + property string name + onNameChanged: { + // we use objectName.propertyName format + var parts = name.split("."); + prop.objectName = parts[0]; + prop.propertyName = parts.length >= 2 ? parts[1] : "Value"; + prop.connect(); + } + + spacing: 10 + Text { + text: parent.name + font.pointSize: 14 + width: 300 // this is a guess + } + Text { + text: qsTr("%1").arg(prop.value) + font.pointSize: 14 + } + + AutomotivePropertyItem { + id: prop + } +} diff --git a/plugins/dbus/amb-qt/qtquicktest.cpp b/plugins/dbus/amb-qt/qtquicktest.cpp new file mode 100644 index 0000000..4735d57 --- /dev/null +++ b/plugins/dbus/amb-qt/qtquicktest.cpp @@ -0,0 +1,12 @@ +#include +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QQmlApplicationEngine engine; + engine.load(QUrl(QStringLiteral("qrc:/qtquicktest.qml"))); + + return app.exec(); +} diff --git a/plugins/dbus/amb-qt/qtquicktest.qml b/plugins/dbus/amb-qt/qtquicktest.qml new file mode 100644 index 0000000..70cd846 --- /dev/null +++ b/plugins/dbus/amb-qt/qtquicktest.qml @@ -0,0 +1,35 @@ +/* +Copyright (C) 2015 Cogent Embedded Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +*/ +import QtQuick 2.0 +import QtQuick.Window 2.0 + +Window { + visible: true + width: 500 + height: 400 + + Column { + anchors.fill: parent; + + Meter { name: "VehicleSpeed.Speed"} + Meter { name: "EngineSpeed.Speed"} + Meter { name: "SteeringWheel.Angle"} + Meter { name: "ThrottlePosition.Value"} + Meter { name: "BrakeOperation.BrakePressure"} + } +} diff --git a/plugins/dbus/amb-qt/qtquicktest.qrc b/plugins/dbus/amb-qt/qtquicktest.qrc new file mode 100644 index 0000000..998ec70 --- /dev/null +++ b/plugins/dbus/amb-qt/qtquicktest.qrc @@ -0,0 +1,6 @@ + + + qtquicktest.qml + Meter.qml + + -- 1.9.1