Qt Cluster: Rendering on QNX and INTEGRITY
Building Qt Cluster Example
Before you can build the Qt Cluster example, you must build Qt Safe Renderer. For instructions on how to build Qt Safe Renderer and the Qt Cluster example, see Building Qt Safe Renderer.
Qt Cluster Example
Qt Cluster example demonstrates rendering on QNX and INTEGRITY and recovering from the failure of the main UI. The demo randomly changes telltales icons on and off.
The demo has switchable user interfaces for:
a hybrid car
and a sports car
The user interface can be changed from the top right corner button labeled Switch Layout.
In the Qt Cluster demo, three different processes are running:
- Main Instrument Cluster process to render the non-safe QML
- Monitoring process to watch the main UI rendering
- Qt Safe Renderer process to render the telltales. It ensures that when the Main Instrument Cluster process is crashed the telltales are still rendered to the screen. The Instrument Cluster process can be crashed by touching the screen of the hybrid car.
See more in this Qt Safe Renderer video.
Example Files
Files:
- qtcluster/circularindicator.cpp
- qtcluster/circularindicator.h
- qtcluster/crasher.cpp
- qtcluster/crasher.h
- qtcluster/etcprovider.cpp
- qtcluster/etcprovider.h
- qtcluster/gauge.cpp
- qtcluster/gauge.h
- qtcluster/gaugenode.cpp
- qtcluster/gaugenode.h
- qtcluster/qtiviclusterdata.cpp
- qtcluster/qtiviclusterdata.h
- qtcluster/scenehelper.cpp
- qtcluster/scenehelper.h
- qtcluster/qml/CarModelMain.qml
- qtcluster/qml/CarModelSports.qml
- qtcluster/qml/CarParking.qml
- qtcluster/qml/CarParkingSports.qml
- qtcluster/qml/CarViewElectric.qml
- qtcluster/qml/CarViewSports.qml
- qtcluster/qml/ConsumptionView.qml
- qtcluster/qml/DashboardLoader.qml
- qtcluster/qml/FpsCounter.qml
- qtcluster/qml/MapView.qml
- qtcluster/qml/MediaPlayerView.qml
- qtcluster/qml/TurnIndicator.qml
- qtcluster/qml/ValueSource.qml
- qtcluster/qml/VehicleInfoNote.qml
- qtcluster/qml/VideoView.qml
- qtcluster/qml/functions.js
- qtcluster/qml/dash_hybrid/BottomPanel.ui.qml
- qtcluster/qml/dash_hybrid/CarInfoField.qml
- qtcluster/qml/dash_hybrid/CenterView.qml
- qtcluster/qml/dash_hybrid/CenterViewCalendar.qml
- qtcluster/qml/dash_hybrid/CenterViewCarInfo.qml
- qtcluster/qml/dash_hybrid/CenterViewContacts.qml
- qtcluster/qml/dash_hybrid/CenterViewMusic.qml
- qtcluster/qml/dash_hybrid/Dashboard.qml
- qtcluster/qml/dash_hybrid/DashboardBackground.qml
- qtcluster/qml/dash_hybrid/DashboardBackgroundForm.ui.qml
- qtcluster/qml/dash_hybrid/DashboardForm.ui.qml
- qtcluster/qml/dash_hybrid/DashboardFrame.qml
- qtcluster/qml/dash_hybrid/DashboardView.qml
- qtcluster/qml/dash_hybrid/Gadget.qml
- qtcluster/qml/dash_hybrid/gauges/BatteryMeter.qml
- qtcluster/qml/dash_hybrid/gauges/ConsumptionMeter.qml
- qtcluster/qml/dash_hybrid/gauges/FpsMeter.qml
- qtcluster/qml/dash_hybrid/gauges/FuelMeter.qml
- qtcluster/qml/dash_hybrid/gauges/LargeMeter.qml
- qtcluster/qml/dash_hybrid/gauges/SmallMeter.qml
- qtcluster/qml/dash_hybrid/gauges/SpeedoMeter.qml
- qtcluster/qml/dash_hybrid/gauges/TachoMeter.qml
- qtcluster/qml/dash_hybrid/gauges/TemperatureMeter.qml
- qtcluster/qml/dash_hybrid/gauges/TurboMeter.qml
- qtcluster/qml/dash_hybrid/gauges/designer/BatteryMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/ConsumptionMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/FuelMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/SpeedoMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/TachoMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/TemperatureMeterSpecifics.qml
- qtcluster/qml/dash_hybrid/gauges/designer/TurboMeterSpecifics.qml
- qtcluster/qml/dash_sports/CameraLoader.qml
- qtcluster/qml/dash_sports/CarLoader.qml
- qtcluster/qml/dash_sports/CenterStack.qml
- qtcluster/qml/dash_sports/Dashboard.qml
- qtcluster/qml/dash_sports/DashboardFrame.qml
- qtcluster/qml/dash_sports/DashboardSportForm.ui.qml
- qtcluster/qml/dash_sports/DashboardView.qml
- qtcluster/qml/dash_sports/Gauge.qml
- qtcluster/qml/dash_sports/RPMFlipable.qml
- qtcluster/qml/dash_sports/RPMGauge.qml
- qtcluster/qml/dash_sports/RPMGauge_painter.qml
- qtcluster/qml/dash_sports/RPMGauge_vertex.qml
- qtcluster/qml/dash_sports/SpeedoMeter.qml
- qtcluster/qml/dash_sports/SpeedoMeterLoader.qml
- qtcluster/qml/dash_sports/SpeedoMeter_painter.qml
- qtcluster/qml/dash_sports/SpeedoMeter_vertex.qml
- qtcluster/qml/dash_sports/designer/RPMFlipableSpecifics.qml
- qtcluster/qml/dash_sports/designer/SpeedoMeterLoaderSpecifics.qml
- qtcluster/main.cpp
- qtcluster/fonts.qrc
- qtcluster/hybridimages.qrc
- qtcluster/hybridqml.qrc
- qtcluster/images.qrc
- qtcluster/iso-icons.qrc
- qtcluster/qtcluster.pro
- qtcluster/qtcluster.qrc
- qtcluster/sportscar_15k.qrc
- qtcluster/sportsimages.qrc
qtcluster/sportsqml.qrc Images:
- qtcluster/images/Built_with_Qt.png
- qtcluster/images/CarForParkSensors.png
- qtcluster/images/CarInfoIcon.png
- qtcluster/images/CentreMask.png
- qtcluster/images/Cluster8Gauges.png
- qtcluster/images/DashboardFrameSport-mask.png
- qtcluster/images/DashboardMask.png
- qtcluster/images/GaugeSpeedometer_CentreRingA.png
- qtcluster/images/GaugeSpeedometer_CentreRingB.png
- qtcluster/images/GaugeSpeedometer_OuterRingA.png
- qtcluster/images/GaugeSpeedometer_OuterRingB.png
- qtcluster/images/GaugeSpeedometer_Ticks1.png
- qtcluster/images/GaugeSpeedometer_Ticks2.png
- qtcluster/images/GaugeSpeedometer_TrailMask.png
- qtcluster/images/Gauge_RPM.png
- qtcluster/images/Gauge_Speed.png
- qtcluster/images/Icon_TurnLeft_OFF.png
- qtcluster/images/Icon_TurnLeft_OFF_small.png
- qtcluster/images/Icon_TurnLeft_ON.png
- qtcluster/images/Icon_TurnLeft_ON_small.png
- qtcluster/images/InfoNoteBackground.png
- qtcluster/images/MapLocation.png
- qtcluster/images/MapLocationSport.png
- qtcluster/images/MusicPlayer_CircleRemaining.png
- qtcluster/images/MusicPlayer_Cover.png
- qtcluster/images/ParkingSensorOff.png
- qtcluster/images/RearCameraOverlay.png
- qtcluster/images/RearCameraOverlaySport.png
- qtcluster/images/RearCameraStill.jpg
- qtcluster/images/SportCarFloorShadow.png
- qtcluster/images/SportCarForParkSensors.png
- qtcluster/images/calendar.png
- qtcluster/images/center.png
- qtcluster/images/contacts.png
- qtcluster/images/cover.png
- qtcluster/images/gaugeCenterBig.png
- qtcluster/images/gaugeCenterSmall.png
- qtcluster/images/gaugeNeedleBig.png
- qtcluster/images/gaugeNeedleSmall.png
- qtcluster/images/greenglow.png
- qtcluster/images/heatNeedle.png
- qtcluster/images/jane.png
- qtcluster/images/john.png
- qtcluster/images/knob.png
- qtcluster/images/left.png
- qtcluster/images/leftgauge.png
- qtcluster/images/mainShape.png
- qtcluster/images/redglow.png
- qtcluster/images/right.png
- qtcluster/images/rightgauge.png
- qtcluster/images/temperature.png Indicators: Creating Safety-Critical UIRunning Examples on QNX
Available under certain Qt licenses.Find out more.