Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. QML and Qt Quick
  4. How to register and access C++ class methods in QML
Forum Updated to NodeBB v4.3 + New Features

How to register and access C++ class methods in QML

Scheduled Pinned Locked Moved QML and Qt Quick
14 Posts 3 Posters 3.5k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • raven-worxR raven-worx

    @Sushma_MP

    1. when it doesn't work, there is definitely an error/notice. Check the console.
    2. what do you mean with "appearing"? Do you mean QtCreator doesn't offer it in the auto-completion popup?
    S Offline
    S Offline
    Sushma_MP
    wrote on last edited by
    #5

    @raven-worx
    when it doesn't work, there is definitely an error/notice. Check the console.

    when we try to add new method try to access it in main.qml...like u said it is not appearing in auto-popup

    raven-worxR 1 Reply Last reply
    0
    • S Sushma_MP

      @raven-worx
      when it doesn't work, there is definitely an error/notice. Check the console.

      when we try to add new method try to access it in main.qml...like u said it is not appearing in auto-popup

      raven-worxR Offline
      raven-worxR Offline
      raven-worx
      Moderators
      wrote on last edited by
      #6

      @Sushma_MP
      i don't know exactly when QtCreator updates it's completion model.
      But closing and reopening the project should trigger it.

      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
      If you have a question please use the forum so others can benefit from the solution in the future

      S 1 Reply Last reply
      0
      • raven-worxR raven-worx

        @Sushma_MP
        i don't know exactly when QtCreator updates it's completion model.
        But closing and reopening the project should trigger it.

        S Offline
        S Offline
        Sushma_MP
        wrote on last edited by
        #7

        @raven-worx
        how is it possible then...everytime we can't close and reopen Qt creator rite...is it a bug...??

        raven-worxR 1 Reply Last reply
        0
        • sneubertS Offline
          sneubertS Offline
          sneubert
          wrote on last edited by
          #8

          In Qt Creator did you try to call [Tools]->[QML/JS]->Reset Code Model, after you compiled your cpp class?

          1 Reply Last reply
          0
          • S Sushma_MP

            @raven-worx
            how is it possible then...everytime we can't close and reopen Qt creator rite...is it a bug...??

            raven-worxR Offline
            raven-worxR Offline
            raven-worx
            Moderators
            wrote on last edited by raven-worx
            #9

            @Sushma_MP said in How to register and acess cpp class methods in QML:

            how is it possible then...everytime we can't close and reopen Qt creator rite...is it a bug...??

            i wasn't talking about restarting the whole QtCreator process, but only close and reopen the project.
            The problem is, when is the right time to update the code-completion model?

            --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
            If you have a question please use the forum so others can benefit from the solution in the future

            1 Reply Last reply
            0
            • S Offline
              S Offline
              Sushma_MP
              wrote on last edited by
              #10

              Hi ,

              Actually i am facing another problem :
              I created cpp class and registered in main.cpp and imported in main.qml
              when i try to access that class in maim.qml i am getting as a invalid property .
              my code is as fallow```
              import QtQuick 2.4
              import QtQuick.Controls 1.3
              import QtQuick.Window 2.2
              import QtQuick.Dialogs 1.2
              import QtQuick 2.5
              import QtGraphicalEffects 1.0
              import com.songclass 1.0

              ApplicationWindow {
              flags: Qt.FramelessWindowHint

              title: qsTr("Infotainment")
              width: (Screen.width/2)+200
              height: (Screen.height/2)
              visible: true
              modality: Qt.WindowModal
              
              selectsong{  
              

              here i get as invalid property with a red underlined for selectsong
              }

              MenuScreen{
                  id:menusrcn
                  visible: false
              }
              Settings{
                  id:settingScreen
                  visible: false
              }
              MusicVedio{
                  id:vedioScreen
                  visible: false
              }
              MediaPlay{
                  id:musicScreen
                  visible: false
              }
              Radio{
                  id:radioScreen
                  visible: false
              }
              
              Rectangle{
                  id:main_rect
                  width: parent.width
                  height: parent.height
                  color: "#e9ebf8"
                  Image {
                      id: back_img
                      source: "qrc:/HomeScreen.png"
                      anchors.centerIn: parent
                  }
              
                  Rectangle
                  {
                      id: welcome_rect
                      width: 250
                      height: 40
                      anchors.top: parent.top
                      anchors.topMargin: 100
                      anchors.horizontalCenter: parent.horizontalCenter
                      color: "transparent"
                      Text {
                          id: welcome_text
                          text: qsTr("L&T Car Infotainment")
                          color:"#fefcfd"
                          font.pixelSize: 36
                          font.family: "Courier"
                          font.bold: true
                          font.italic: true
                          anchors.centerIn: parent
                          style: Text.Sunken
                          styleColor: "#000000"
                      }
                  }
              
                  Rectangle{
                      id: next_page_rect
                      width: parent.width/6
                      height: parent.height/12
                      color:"Transparent"
                      anchors.right: parent.right
                      anchors.bottom: parent.bottom
                      anchors.rightMargin: 15
                      anchors.bottomMargin: 8
                      Image {
                          id: next_image
                          source: "qrc:/Fwd_arrow.png"
                          width: parent.width
                          height: parent.height
                          smooth: true
                          fillMode: Image.PreserveAspectFit
                          antialiasing: true
                          MouseArea{
                              id: next_page_rect_mousearea
                              anchors.fill: parent
                              onClicked: {
                                  menusrcn.visible= true
                                  main_rect.visible= false
                              }
                          }
                      }
                  }
              }
              

              }

              raven-worxR 1 Reply Last reply
              0
              • S Sushma_MP

                Hi ,

                Actually i am facing another problem :
                I created cpp class and registered in main.cpp and imported in main.qml
                when i try to access that class in maim.qml i am getting as a invalid property .
                my code is as fallow```
                import QtQuick 2.4
                import QtQuick.Controls 1.3
                import QtQuick.Window 2.2
                import QtQuick.Dialogs 1.2
                import QtQuick 2.5
                import QtGraphicalEffects 1.0
                import com.songclass 1.0

                ApplicationWindow {
                flags: Qt.FramelessWindowHint

                title: qsTr("Infotainment")
                width: (Screen.width/2)+200
                height: (Screen.height/2)
                visible: true
                modality: Qt.WindowModal
                
                selectsong{  
                

                here i get as invalid property with a red underlined for selectsong
                }

                MenuScreen{
                    id:menusrcn
                    visible: false
                }
                Settings{
                    id:settingScreen
                    visible: false
                }
                MusicVedio{
                    id:vedioScreen
                    visible: false
                }
                MediaPlay{
                    id:musicScreen
                    visible: false
                }
                Radio{
                    id:radioScreen
                    visible: false
                }
                
                Rectangle{
                    id:main_rect
                    width: parent.width
                    height: parent.height
                    color: "#e9ebf8"
                    Image {
                        id: back_img
                        source: "qrc:/HomeScreen.png"
                        anchors.centerIn: parent
                    }
                
                    Rectangle
                    {
                        id: welcome_rect
                        width: 250
                        height: 40
                        anchors.top: parent.top
                        anchors.topMargin: 100
                        anchors.horizontalCenter: parent.horizontalCenter
                        color: "transparent"
                        Text {
                            id: welcome_text
                            text: qsTr("L&T Car Infotainment")
                            color:"#fefcfd"
                            font.pixelSize: 36
                            font.family: "Courier"
                            font.bold: true
                            font.italic: true
                            anchors.centerIn: parent
                            style: Text.Sunken
                            styleColor: "#000000"
                        }
                    }
                
                    Rectangle{
                        id: next_page_rect
                        width: parent.width/6
                        height: parent.height/12
                        color:"Transparent"
                        anchors.right: parent.right
                        anchors.bottom: parent.bottom
                        anchors.rightMargin: 15
                        anchors.bottomMargin: 8
                        Image {
                            id: next_image
                            source: "qrc:/Fwd_arrow.png"
                            width: parent.width
                            height: parent.height
                            smooth: true
                            fillMode: Image.PreserveAspectFit
                            antialiasing: true
                            MouseArea{
                                id: next_page_rect_mousearea
                                anchors.fill: parent
                                onClicked: {
                                    menusrcn.visible= true
                                    main_rect.visible= false
                                }
                            }
                        }
                    }
                }
                

                }

                raven-worxR Offline
                raven-worxR Offline
                raven-worx
                Moderators
                wrote on last edited by
                #11

                @Sushma_MP
                selectsong is not a valid property of ApplicationWindow type.
                QML types must start with an Uppercase-Letter to distinguish them from properties as you can see in your error.

                --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                If you have a question please use the forum so others can benefit from the solution in the future

                1 Reply Last reply
                0
                • S Offline
                  S Offline
                  Sushma_MP
                  wrote on last edited by
                  #12

                  ohh but selectsong is my cpp class name

                  raven-worxR 1 Reply Last reply
                  0
                  • S Offline
                    S Offline
                    Sushma_MP
                    wrote on last edited by
                    #13

                    thank you soo much i got the solution by taking it as uppercase letter as you said...

                    1 Reply Last reply
                    0
                    • S Sushma_MP

                      ohh but selectsong is my cpp class name

                      raven-worxR Offline
                      raven-worxR Offline
                      raven-worx
                      Moderators
                      wrote on last edited by
                      #14

                      @Sushma_MP said in How to register and acess cpp class methods in QML:

                      ohh but selectsong is my cpp class name

                      you can also leave the class name, but register it with a upper case name should also work.

                      --- SUPPORT REQUESTS VIA CHAT WILL BE IGNORED ---
                      If you have a question please use the forum so others can benefit from the solution in the future

                      1 Reply Last reply
                      0

                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • Users
                      • Groups
                      • Search
                      • Get Qt Extensions
                      • Unsolved