Advertisement
Meistermosher

Dashboard_Main.qml

Nov 23rd, 2021 (edited)
2,088
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
QML 6.68 KB | None | 0 0
  1. import QtQuick 2.15
  2. import QtQuick.Window 2.15
  3. import QtQuick.Controls 2.12
  4. import QtQml 2.2
  5.  
  6. Window {
  7.     id: mw
  8.     width: 1800
  9.     height: 700
  10.     visible: true
  11.     title: qsTr("Heads Up Display")
  12.  
  13.     signal knopfMotorEinAus()
  14.     signal knopfGasHoch()
  15.     signal knopfGasRunter()
  16.     signal knopfGang0()
  17.     signal knopfRechneAlles()
  18.     signal knopfGang(int x)
  19.     signal knopfBremsen()
  20.  
  21.     Rectangle{
  22.         anchors.fill: parent
  23.         color: "lightgrey"
  24.     }
  25.  
  26.     // ++++ INTERACTION ++++
  27.     Item {
  28.         id: keyInput
  29.         focus: true
  30.  
  31.         Keys.onPressed: {
  32.  
  33.             // ++++ START MOTOR ++++
  34.  
  35.             if(event.key === Qt.Key_S)
  36.             {
  37.                 if(!dash.visible){
  38.                     timer.start();
  39.                     mw.knopfMotorEinAus();
  40.                     dash.visible = true;
  41.                     event.accepted = true;
  42.                 }
  43.                 else if(dash.visible)
  44.                 {
  45.                     timer.stop();
  46.                     mw.knopfMotorEinAus();
  47.                     dash.closeRearView();
  48.                     dash.visible = false;
  49.                     event.accepted = true;
  50.                 }
  51.             }
  52.  
  53.             // ++++ BREAK & ACCELERATION ++++
  54.  
  55.             else if(event.key === Qt.Key_PageUp)
  56.             {
  57.                 mw.knopfGasHoch()
  58.             }
  59.  
  60.             else if(event.key === Qt.Key_PageDown)
  61.             {
  62.                 mw.knopfGasRunter()
  63.             }
  64.  
  65.  
  66.             else if(event.key === Qt.Key_Space)
  67.             {
  68.                 mw.knopfBremsen()
  69.             }
  70.  
  71.             // ++++ SHIFTING GEARS ++++
  72.  
  73.             if(event.key === Qt.Key_0)
  74.             {
  75.                 if(dash.visible)
  76.                 {
  77.                     mw.knopfGang(0)
  78.                     dash.closeRearView();
  79.                     setVisualGear("0")
  80.                 }
  81.                 else if(!dash.visible){
  82.                     return;
  83.                 }
  84.             }
  85.  
  86.             if(event.key === Qt.Key_1)
  87.             {
  88.                 if(dash.visible)
  89.                 {
  90.                     mw.knopfGang(1)
  91.                     dash.closeRearView();
  92.                     setVisualGear("1")
  93.                 }
  94.                 else if(!dash.visible){
  95.                     return;
  96.                 }
  97.             }
  98.  
  99.             if(event.key === Qt.Key_2)
  100.             {
  101.                 if(dash.visible)
  102.                 {
  103.                     mw.knopfGang(2)
  104.                     dash.closeRearView();
  105.                     setVisualGear("2")
  106.                 }
  107.                 else if(!dash.visible){
  108.                     return;
  109.                 }
  110.             }
  111.  
  112.             if(event.key === Qt.Key_3)
  113.             {
  114.                 if(dash.visible)
  115.                 {
  116.                     mw.knopfGang(3)
  117.                     dash.closeRearView();
  118.                     setVisualGear("3")
  119.                 }
  120.                 else if(!dash.visible){
  121.                     return;
  122.                 }
  123.             }
  124.  
  125.             if(event.key === Qt.Key_4)
  126.             {
  127.                 if(dash.visible)
  128.                 {
  129.                     mw.knopfGang(4)
  130.                     dash.closeRearView();
  131.                     setVisualGear("4")
  132.                 }
  133.                 else if(!dash.visible){
  134.                     return;
  135.                 }
  136.             }
  137.  
  138.             if(event.key === Qt.Key_5)
  139.             {
  140.                 if(dash.visible)
  141.                 {
  142.                     mw.knopfGang(5)
  143.                     dash.closeRearView();
  144.                     setVisualGear("5")
  145.                 }
  146.                 else if(!dash.visible){
  147.                     return;
  148.                 }
  149.             }
  150.  
  151.             // ++++ USE BLINKERS ++++
  152.  
  153.             if(event.key === Qt.Key_Left){
  154.                 if(!dash.visible){
  155.                     return;}
  156.                 else if(dash.visible)
  157.                 {
  158.                     dash.blinkLeft();
  159.                 }
  160.             }
  161.             if(event.key === Qt.Key_Right){
  162.                 if(!dash.visible){
  163.                     return;}
  164.                 else if(dash.visible)
  165.                 {
  166.                     dash.blinkRight();
  167.                 }
  168.             }
  169.  
  170.             // ++++ REAR VIEW ++++
  171.  
  172.             if(event.key === Qt.Key_R)
  173.                 if(!dash.visible){
  174.                     return;
  175.                 }
  176.                 else if(dash.m_speed > 0.1)
  177.                 {
  178.                     dash.m_error = "Rückfahrt nicht möglich!";
  179.                 }
  180.  
  181.                 else{
  182.                     mw.knopfGang(-1);
  183.                     setVisualGear("R")
  184.                     dash.openRearView()
  185.                 }
  186.         }
  187.  
  188.         function setVisualGear(g)
  189.         {
  190.             dash.m_gear = g;
  191.         }
  192.     }
  193.  
  194.     Text{
  195.         anchors.centerIn: parent
  196.         color: "black"
  197.  
  198.         text:
  199.             "Willkommen bei unserem tollen Abschlussprojekt!
  200.  
  201.             Bitte verwenden Sie das Kit: Desktop Qt 5.15.2 MinGW 64-bit
  202.  
  203.             Die Tasten haben folgende Funktionen:
  204.  
  205.             S                  Motor starten/stoppen
  206.             1,2,3,4,5      Gänge einlegen
  207.             0                  Leerlauf einlegen
  208.             R                  Rückwärtsgang einlegen
  209.             Bild hoch      Gaspedal stufenweise drücken
  210.             Bild runter    Gas stufenweise verringern
  211.             Leertaste     Bremsen
  212.             Pfeil rechts  Blinker rechts
  213.             Pfeil links    Blinker links
  214.  
  215.             Don't drink and drive!"
  216.     }
  217.  
  218.     Dashboard{
  219.         id: dash
  220.         visible: false
  221.     }
  222.  
  223.     Connections{
  224.         target: sender
  225.         function onGeschwindigkeitSenden(speed)
  226.         {
  227.             dash.m_speed = speed * 3.6
  228.         }
  229.     }
  230.  
  231.     Connections{
  232.         target: sender
  233.         function onDrehzahlSenden(rpm)
  234.         {
  235.             dash.m_rpm = rpm
  236.         }
  237.     }
  238.  
  239.     Connections{
  240.         target: sender
  241.         function onVerbrauchSenden(verbrauch)
  242.         {
  243.             dash.m_consumption = verbrauch
  244.         }
  245.     }
  246.  
  247.     Connections{
  248.         target: sender
  249.         function onKmZahlSenden(kmZahl)
  250.         {
  251.             dash.m_odometer = kmZahl
  252.         }
  253.     }
  254.  
  255.     Connections{
  256.         target: sender
  257.         function onErrorSenden(errorString)
  258.         {
  259.             dash.m_error = errorString
  260.         }
  261.     }
  262.  
  263.     Connections{
  264.         target: sender
  265.         function onTankSenden(tankinhalt)
  266.         {
  267.             dash.m_tankanz = tankinhalt
  268.         }
  269.     }
  270.  
  271.     Timer{
  272.         id: timer
  273.         interval: 200
  274.         running: false
  275.         repeat: true
  276.         onTriggered: mw.knopfRechneAlles()
  277.     }
  278. }
  279.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement