Part 2: Let's Recreate the Tesla UI in Qt and QML

แชร์
ฝัง
  • เผยแพร่เมื่อ 15 ม.ค. 2025

ความคิดเห็น • 59

  • @jayleo2052
    @jayleo2052 2 ปีที่แล้ว +12

    when the part3 coming😅...

    • @MontyTheSoftwareEngineer
      @MontyTheSoftwareEngineer  2 ปีที่แล้ว +11

      Coming soon!

    • @marawade4991
      @marawade4991 2 ปีที่แล้ว +3

      Please part3

    • @jayleo2052
      @jayleo2052 ปีที่แล้ว +2

      😅

    • @王涵-b7z
      @王涵-b7z ปีที่แล้ว +1

      @@MontyTheSoftwareEngineer We are still waiting for your awsome work

    • @mhdysyfq
      @mhdysyfq ปีที่แล้ว +5

      ​@@MontyTheSoftwareEngineerstill waiting

  • @Amine-gz7gq
    @Amine-gz7gq 3 หลายเดือนก่อน

    I like your style because, like me, you like simplicity and clarity. Thank you Monty !

  • @albinapavlenko9924
    @albinapavlenko9924 2 ปีที่แล้ว +1

    That was just awesome. The idea about volume changing was very useful. I thought about such interface either. Thank you a lot. I'm looking forward for Part 3.

  • @rafal7217
    @rafal7217 ปีที่แล้ว +1

    Great tutorial! Is there a possibility to continue the project? Show transitions between elements, animations, submenu elements, and so on?

  • @achantasrikant3724
    @achantasrikant3724 ปีที่แล้ว

    Nice explanation! Can you show how to create a bidirectional progress bar that appears at the top, indicating acceleration and deceleration in Tesla Infotainment

  • @marawade4991
    @marawade4991 2 ปีที่แล้ว +1

    Please part3

  • @7guitarlover
    @7guitarlover ปีที่แล้ว

    Please create a Part 3 for it too !

  • @raidingshaman
    @raidingshaman 2 ปีที่แล้ว +1

    Part 3 please

  • @7guitarlover
    @7guitarlover ปีที่แล้ว

    Both the videos were a bliss to watch ! =)

  • @haknkayaa
    @haknkayaa 2 ปีที่แล้ว +1

    Perfect! It's clever to make the label string invisible when text input is input 😅

  • @balenciagastore
    @balenciagastore ปีที่แล้ว

    new videos will appear ? looking forward to new videos😶‍🌫

  • @oldchapo7607
    @oldchapo7607 2 ปีที่แล้ว +1

    i'm wondering if there is going to be a part when you connect values shown on the screen to real can bus data? when you read canbusFrame, convert it to decimal and connect to the text output? I know you probably won't be able to verify that it works on windows, but at least you could go through fundamentals of it?

  • @myprogrammingbuddy153
    @myprogrammingbuddy153 2 ปีที่แล้ว +1

    Can you plz make a video on how to connect qml project to database using c++ or refer any documentation? I have watch every single video of yours. I learnt a lot about qml but I am have trouble in connecting UI from qml to database for my semester Project

  • @HolographicKode
    @HolographicKode ปีที่แล้ว

    Great presentation btw.. Keep it going! Watching your workflow I was wondering if there is a way for the UI to be independently created by a UI team, without the need to code. Your workflow seems to have a close/parallel development of both the display and the logic. I don’t know much QT or QML for that matter, and I can’t tell if the framework offers the possibility of a separation of team. IF it’s possible, do you have an example/reference where such separation is done, and what it takes to realize it?

  • @王涵-b7z
    @王涵-b7z 2 ปีที่แล้ว +1

    What a cool work!Something i really want to know is that whether we can also recreate its 3d scene especially autopilot UI in the left side.I'm really curious about how it is coded and what Engine is used behind them.
    Anyone could help?

  • @bobik2110
    @bobik2110 ปีที่แล้ว

    Hi. Can you share the entire project?

  • @asoftraiden
    @asoftraiden ปีที่แล้ว

    Ok that’s cool, we need MORE

  • @juliokiyoshi1287
    @juliokiyoshi1287 ปีที่แล้ว

    where is the pt 3 T_T

  • @PhamNghia-wh1hp
    @PhamNghia-wh1hp ปีที่แล้ว

    Thank you for your helpful video. I have an error said: "The geoservices provider is not supported." when using mapbox. Any idea to fix this? I'm using Qt 6.5.1

  • @romainrullier
    @romainrullier ปีที่แล้ว

    Part 3 ?... 🙁

  • @nguyenuctuan5156
    @nguyenuctuan5156 7 หลายเดือนก่อน

    search location feature is trick, isn't it? Can you implement search location, route, POI, vv that's the same with gg map?

  • @fishsalt6019
    @fishsalt6019 8 หลายเดือนก่อน

    i followed ur video typed the same code sa yours,but i can not use "context->setContextProperty("audioController", & m_audioController);" in volumeControlComponent.qml why? please help me

  • @SuperBg234
    @SuperBg234 ปีที่แล้ว

    I don't understand why to use Q_INVOKABLE incrementVolume if u can use setVolumeLevel of Q_PROPERTY volumeLevel in qml element ?

  • @HolographicKode
    @HolographicKode ปีที่แล้ว

    Interesting how QML allows for logic/coding components to be added idrectly to QML. I wonder if this is a good or a bad thing. Wouldn’t adding logic to the UI lead to separation of concerns? Is there a rule of thumb of what logic you should add to the QML and what not? E.g. if you add a systemHandler to the UI, which is a controller, then the UI has its elements dependent on the controller object existing. What if you remove the controller? or replace it? or update its API ?

  • @PalasBrown
    @PalasBrown ปีที่แล้ว

    part 3 pls bro

  • @vucongtuan2492
    @vucongtuan2492 2 ปีที่แล้ว

    can you teach how to load video qml type on Qt ?

  • @dedydedy9480
    @dedydedy9480 ปีที่แล้ว

    Is it possible for you to create a slider as a ruler ? Or something similar with this ? I need a measuring line used as a slider from -180 to 180 , and whenever I am moving the cursor I can see on that ruler what value is ? Thx

  • @HolographicKode
    @HolographicKode ปีที่แล้ว

    What happens if you align the UI elements relative to elements that do not exist (e.g if they get removed from the UI). Will the QML engine assume the parent as a fallback ? or application crashes? or doesn’t display that element ?

  • @User-bm8in
    @User-bm8in 2 ปีที่แล้ว

    it is a very very nice video, thank you man, I wait for more video by qt technology and c++

  • @abdullahrashid7908
    @abdullahrashid7908 2 ปีที่แล้ว

    Your a legend man.

  • @jayleo2052
    @jayleo2052 2 ปีที่แล้ว

    nice video!im on the other side of the Pacific Ocean,and i will follow your video to learn,thanks to share 😊

  • @L0CALDRUGMAN
    @L0CALDRUGMAN 2 ปีที่แล้ว +1

    isnt tesla UI created with QT ?

  • @bluehornet6752
    @bluehornet6752 2 ปีที่แล้ว

    Awesome "Monty" (if that *is* your real name), been waiting for this one! LOL... ;)
    Seriously--I'll work through it tonight or tomorrow. Work calls today. Even though I do C++/QML stuff all day at work, for some reason it's never as fun as it is to work through your projects. Same goes with Marko's stuff now--he's got some very cool stuff on his channel as well.

    • @bluehornet6752
      @bluehornet6752 2 ปีที่แล้ว

      Started working on this. I'll comment as I go along...
      1) Instead of a Text and a TextInput in the NavigationSearchBox.qml element, I used a TextField which provides a placeholderText property by default.. Makes it easier than having to show/hide your text manually. You can also set a selectByMouse property as well as to provide the max number of characters you'll accept, and even an input mask. It's a very slick option, and you can do some pretty cool things with the background property as well.

    • @bluehornet6752
      @bluehornet6752 2 ปีที่แล้ว

      2) In your HVACController class, in the incrementTargetTemperature() method, you don't need to pass a reference to an integer...nor do you need to make that const. C++ gets primary types by value anyway, so just pass an integer. Of course you could pass an int pointer (EDIT: In addition to a non-const reference) if you *wanted* the method to change the argument, but that's not what you're doing there. So, if you don't pass a reference (which is basically the same size as the integer you're passing anyway), it will get a copy of the 'val' parameter. Obviously you WOULD want to pass strings and other non-primitive values by reference (and often const), but that's because those things are usually much larger than the 4-8 bytes you're passing to the method with a primitive. It certainly shouldn't affect performance, but I just wanted to mention for people watching this that it isn't really necessary to pass primitives by const ref, because they're getting passed by value by default anyway.

    • @bluehornet6752
      @bluehornet6752 2 ปีที่แล้ว

      3) Nice job on the hvacController property in the HVACController element. I was wondering how you were going to do that, and thought it was a cool approach. I was thinking of a more complicated solution--but yours was much simpler. Cool!

    • @bluehornet6752
      @bluehornet6752 2 ปีที่แล้ว

      4) For the sizing issues you were having when trying to place the audio element, I have the same issues sometimes. Two things I'll say: First, I always set a height and width when I know what those will be--and preferably at the highest level possible. So while working through your code what I did was to specify the width/height values for the HVAC and audio elements right in the client code (ie; BottomBar.qml). In my experience nothing good happens when you try to do all that stuff inside the control. I certainly give the individual elements of the control height and width values, but they're relative to the parent's height and width...as in, some multiple or fraction. Second, there's a tool that KDAB puts out called GammaRay. It's AWESOME. You generally have to build it from source for the version of Qt you're working with (eg; 5.15.2, 5.15.10), but for Windows they might have some binaries for download. It's open source and I would encourage anyone doing this seriously to go learn it. It will allow you to picture exactly what's going on when you have these little issues--like what is the width/height REALLY? I know you think you *might* know...but this tells you what it really is--or what QtQuick thinks those values are. It also allows you to easily what's being rendered outside the scenegraph, and about a zillion other things. On Linux I just built the version I need from source, but I don't use it on Windows--it shouldn't be hard to build though. If there is a binary available for a 5.15 patch (like 5.15.2), I'd get that version and then just install the version of Qt that you can get the GammaRay binary for (if you don't want to compile it from source).
      KDAB has a bunch of tutorials on their TH-cam channel about how to use it, and how useful it can be. It's a process to learn the tool, but it's really worth it to put in the effort, if you haven't seen it already.

    • @bluehornet6752
      @bluehornet6752 2 ปีที่แล้ว

      Forgot to mention on GammaRay: Had you used that and enabled "over-scan" you would have immediately seen where all those audio components were in the scenegraph. There's a way to do it without GammaRay, by setting some Qt environment variable (that I always have to Google to remember the exact name of), but GammaRay allows you to toggle over-scan on/off at will. Had you used that tool you would have found your issue in about 30 seconds, I'll wager. Here's a link to the GammaRay playlist on the KDAB channel:
      th-cam.com/video/vhD1WBaRLZI/w-d-xo.html

  • @amrrasslan4329
    @amrrasslan4329 3 หลายเดือนก่อน

    part3 please 😂

  • @HolographicKode
    @HolographicKode ปีที่แล้ว

    I’m quite amazed TELSA developers decided to go with increment/decrement buttons for range control.. It’s 2023, folks! Sliders are much better option for this kind of control, not to mention when you are driving you need as little distraction rom driving as possible.. and tapping on small buttons to adjust things is a major distraction, much worse than tapping on an icon and sliding left/right.

  • @felipefozzatti9742
    @felipefozzatti9742 2 ปีที่แล้ว

    Can someone help me please? When importing the QtLocation, the following message is displayed "QML module not found (QtLocation)"

    • @PixelAndProjects
      @PixelAndProjects 2 ปีที่แล้ว

      As far as I know it isn't supported for Qt 6 yet. Just for Qt 5. Maybe that solves your issue.

  • @uselessenginar21
    @uselessenginar21 8 หลายเดือนก่อน

    Thanks

  • @meteistar7528
    @meteistar7528 2 ปีที่แล้ว

    Great video thanks

  • @vucongtuan2492
    @vucongtuan2492 2 ปีที่แล้ว

    Thanks a lot!!!!!❤

  • @ВероникаКабанова-ш6ю
    @ВероникаКабанова-ш6ю 2 ปีที่แล้ว

    Cool👍

  • @MrTough-dw7ot
    @MrTough-dw7ot 3 หลายเดือนก่อน

    Part 3 please