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 create QML singleton
Forum Updated to NodeBB v4.3 + New Features

How to create QML singleton

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
17 Posts 5 Posters 3.2k 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.
  • K Offline
    K Offline
    KejPi
    wrote on 23 Jan 2024, 21:57 last edited by
    #1

    I am sorry to ask this question but after reading all documentation and trying to google it I am still not able to create and use singleton on QML :-(

    I have following file:

    qml/EPGColors.qml:

    pragma Singleton
    import QtQuick
    
    QtObject {
        readonly property color pastProgColor: "#e4e4e4"
    }
    

    I have added it to cmakefile:

    set_source_files_properties(qml/EPGColors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
    qt6_add_qml_module(${TARGET}
        URI ProgrammeGuide
        QML_FILES
            qml/epg.qml
            qml/EPGItem.qml
            qml/EPGSwitch.qml
            qml/EPGTabBar.qml
            qml/EPGTabButton.qml
            qml/EPGColors.qml
        NO_RESOURCE_TARGET_PATH
        VERSION 1.0
    )
    

    Now, I am trying to use it in qml/EPGItem.qml:

    property color myColor: EPGColors.pastProgColor
    

    And I get this error:

    qrc:/qml/EPGItem.qml:40:5: Unable to assign [undefined] to QColor
    

    It seems to be aligned with documentation: https://doc.qt.io/qt-6/qt-target-qml-sources.html#source-file-properties

    What am I doing wrong?

    Thanks!

    G 1 Reply Last reply 24 Jan 2024, 14:56
    0
    • K KejPi
      23 Jan 2024, 21:57

      I am sorry to ask this question but after reading all documentation and trying to google it I am still not able to create and use singleton on QML :-(

      I have following file:

      qml/EPGColors.qml:

      pragma Singleton
      import QtQuick
      
      QtObject {
          readonly property color pastProgColor: "#e4e4e4"
      }
      

      I have added it to cmakefile:

      set_source_files_properties(qml/EPGColors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
      qt6_add_qml_module(${TARGET}
          URI ProgrammeGuide
          QML_FILES
              qml/epg.qml
              qml/EPGItem.qml
              qml/EPGSwitch.qml
              qml/EPGTabBar.qml
              qml/EPGTabButton.qml
              qml/EPGColors.qml
          NO_RESOURCE_TARGET_PATH
          VERSION 1.0
      )
      

      Now, I am trying to use it in qml/EPGItem.qml:

      property color myColor: EPGColors.pastProgColor
      

      And I get this error:

      qrc:/qml/EPGItem.qml:40:5: Unable to assign [undefined] to QColor
      

      It seems to be aligned with documentation: https://doc.qt.io/qt-6/qt-target-qml-sources.html#source-file-properties

      What am I doing wrong?

      Thanks!

      G Offline
      G Offline
      GrecKo
      Qt Champions 2018
      wrote on 24 Jan 2024, 14:56 last edited by
      #2

      What's in EPGItem.qml? Do you import your module there?

      1 Reply Last reply
      0
      • K Offline
        K Offline
        KejPi
        wrote on 24 Jan 2024, 17:56 last edited by
        #3

        I have deleted build folder and now there is

        singleton EPGColors 1.0 qml/EPGColors.qml
        

        in qmldir file.

        I have added import to EPGItem.qml:

        import QtQuick
        import Qt5Compat.GraphicalEffects   // required for Qt < 6.5
        // import QtQuick.Effects              // not available in Qt < 6.5
        import ProgrammeGuide
        
        Item {
            id: progItem
            // ...
            property color pastProgColor: EPGColors.pastProgColor
            // ...
        }
        

        And now I get this message that is even more confusing:

        qrc:/qml/EPGItem.qml:42: TypeError: EPGColors was a singleton at compile time, but is not a singleton anymore.
        
        1 Reply Last reply
        0
        • K Offline
          K Offline
          KejPi
          wrote on 24 Jan 2024, 18:30 last edited by
          #4

          I do not know how to attach file, so this is cope and paste of minimal example:

          CMakeList.txt

          cmake_minimum_required(VERSION 3.16)
          
          project(SingletonTest VERSION 0.1 LANGUAGES CXX)
          
          set(CMAKE_CXX_STANDARD_REQUIRED ON)
          
          find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
          
          qt_standard_project_setup()
          
          qt_add_executable(appSingletonTest
              main.cpp
          )
          
          set_source_files_properties(qml/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
          qt_add_qml_module(appSingletonTest
              URI SingletonTest
              VERSION 1.0
              QML_FILES qml/main.qml
              QML_FILES qml/Colors.qml
          )
          
          # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
          # If you are developing for iOS or macOS you should consider setting an
          # explicit, fixed bundle identifier manually though.
          set_target_properties(appSingletonTest PROPERTIES
          #    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appSingletonTest
              MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
              MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
              MACOSX_BUNDLE TRUE
              WIN32_EXECUTABLE TRUE
          )
          
          target_link_libraries(appSingletonTest
              PRIVATE Qt6::Quick
          )
          
          include(GNUInstallDirs)
          install(TARGETS appSingletonTest
              BUNDLE DESTINATION .
              LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
              RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
          )
          
          

          main.cpp:

          #include <QGuiApplication>
          #include <QQmlApplicationEngine>
          
          int main(int argc, char *argv[])
          {
              QGuiApplication app(argc, argv);
          
              QQmlApplicationEngine engine;
              const QUrl url(u"qrc:/SingletonTest/qml/main.qml"_qs);
              QObject::connect(
                  &engine,
                  &QQmlApplicationEngine::objectCreationFailed,
                  &app,
                  []() { QCoreApplication::exit(-1); },
                  Qt::QueuedConnection);
              engine.load(url);
          
              return app.exec();
          }
          

          qml/main.qml:

          import QtQuick
          import SingletonTest
          
          Window {
              width: 640
              height: 480
              visible: true
              title: qsTr("Hello World")
          
              Rectangle {
                  width: parent.width/2
                  height: parent.height/2
                  anchors.centerIn: parent
                  color: Colors.myColor
              }
          }
          

          qml/Colors.qml:

          pragma Singleton
          import QtQuick
          
          QtObject {
              id: colors
              readonly property color myColor: "red"
          }
          

          When I run it I get this message:

          qrc:/SingletonTest/qml/main.qml:14: TypeError: Colors was a singleton at compile time, but is not a singleton anymore.
          
          G MesrineM 2 Replies Last reply 24 Jan 2024, 18:51
          1
          • K KejPi
            24 Jan 2024, 18:30

            I do not know how to attach file, so this is cope and paste of minimal example:

            CMakeList.txt

            cmake_minimum_required(VERSION 3.16)
            
            project(SingletonTest VERSION 0.1 LANGUAGES CXX)
            
            set(CMAKE_CXX_STANDARD_REQUIRED ON)
            
            find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
            
            qt_standard_project_setup()
            
            qt_add_executable(appSingletonTest
                main.cpp
            )
            
            set_source_files_properties(qml/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
            qt_add_qml_module(appSingletonTest
                URI SingletonTest
                VERSION 1.0
                QML_FILES qml/main.qml
                QML_FILES qml/Colors.qml
            )
            
            # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
            # If you are developing for iOS or macOS you should consider setting an
            # explicit, fixed bundle identifier manually though.
            set_target_properties(appSingletonTest PROPERTIES
            #    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appSingletonTest
                MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
                MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
                MACOSX_BUNDLE TRUE
                WIN32_EXECUTABLE TRUE
            )
            
            target_link_libraries(appSingletonTest
                PRIVATE Qt6::Quick
            )
            
            include(GNUInstallDirs)
            install(TARGETS appSingletonTest
                BUNDLE DESTINATION .
                LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
                RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
            )
            
            

            main.cpp:

            #include <QGuiApplication>
            #include <QQmlApplicationEngine>
            
            int main(int argc, char *argv[])
            {
                QGuiApplication app(argc, argv);
            
                QQmlApplicationEngine engine;
                const QUrl url(u"qrc:/SingletonTest/qml/main.qml"_qs);
                QObject::connect(
                    &engine,
                    &QQmlApplicationEngine::objectCreationFailed,
                    &app,
                    []() { QCoreApplication::exit(-1); },
                    Qt::QueuedConnection);
                engine.load(url);
            
                return app.exec();
            }
            

            qml/main.qml:

            import QtQuick
            import SingletonTest
            
            Window {
                width: 640
                height: 480
                visible: true
                title: qsTr("Hello World")
            
                Rectangle {
                    width: parent.width/2
                    height: parent.height/2
                    anchors.centerIn: parent
                    color: Colors.myColor
                }
            }
            

            qml/Colors.qml:

            pragma Singleton
            import QtQuick
            
            QtObject {
                id: colors
                readonly property color myColor: "red"
            }
            

            When I run it I get this message:

            qrc:/SingletonTest/qml/main.qml:14: TypeError: Colors was a singleton at compile time, but is not a singleton anymore.
            
            G Offline
            G Offline
            GrecKo
            Qt Champions 2018
            wrote on 24 Jan 2024, 18:51 last edited by
            #5

            What if you put the QML files in the root folder of the project? Colors.qml instead of qml/Colors.qml

            Also I'd remove the second QML_FILES in qt_add_qml_module

            K 1 Reply Last reply 24 Jan 2024, 19:04
            0
            • G GrecKo
              24 Jan 2024, 18:51

              What if you put the QML files in the root folder of the project? Colors.qml instead of qml/Colors.qml

              Also I'd remove the second QML_FILES in qt_add_qml_module

              K Offline
              K Offline
              KejPi
              wrote on 24 Jan 2024, 19:04 last edited by
              #6

              If I move Colors.qml to root folder and change CMakeList.txt accordingly:

              set_source_files_properties(Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
              qt_add_qml_module(appSingletonTest
                  URI SingletonTest
                  VERSION 1.0
                  QML_FILES qml/main.qml
                            Colors.qml
              )
              

              I get this error when I run the application:

              qrc:/SingletonTest/qml/main.qml:14: ReferenceError: Colors is not defined
              
              K 1 Reply Last reply 24 Jan 2024, 19:20
              0
              • K KejPi
                24 Jan 2024, 19:04

                If I move Colors.qml to root folder and change CMakeList.txt accordingly:

                set_source_files_properties(Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                qt_add_qml_module(appSingletonTest
                    URI SingletonTest
                    VERSION 1.0
                    QML_FILES qml/main.qml
                              Colors.qml
                )
                

                I get this error when I run the application:

                qrc:/SingletonTest/qml/main.qml:14: ReferenceError: Colors is not defined
                
                K Offline
                K Offline
                KejPi
                wrote on 24 Jan 2024, 19:20 last edited by KejPi
                #7

                It seems all QML files must be in root folder including some other custom components files.

                If I do this, it works:

                set_source_files_properties(Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                qt_add_qml_module(appSingletonTest
                    URI SingletonTest
                    VERSION 1.0
                    QML_FILES main.qml
                              Colors.qml
                              SomeComponent.qml
                )
                

                This strange, so far I put all my QML files to dedicated folder (qml/) to separate it from C++ and everything was working (see my first example code) - only the singleton causes some problem.

                I could consider this as workaround but I do not like it since I will mix QML with C++ and it will be a mess :-(

                EDIT: It seems that this construction works too:

                set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                set_source_files_properties(qmlfiles/main.qml PROPERTIES QT_RESOURCE_ALIAS main.qml)
                set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_RESOURCE_ALIAS Colors.qml)
                set_source_files_properties(qmlfiles/SomeComponent.qml PROPERTIES QT_RESOURCE_ALIAS SomeComponent.qml)
                qt_add_qml_module(appSingletonTest
                    URI SingletonTest
                    VERSION 1.0
                    QML_FILES qmlfiles/main.qml
                              qmlfiles/Colors.qml
                              qmlfiles/SomeComponent.qml
                )
                
                ekkescornerE J 2 Replies Last reply 26 Jan 2024, 13:45
                0
                • K KejPi
                  24 Jan 2024, 19:20

                  It seems all QML files must be in root folder including some other custom components files.

                  If I do this, it works:

                  set_source_files_properties(Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                  qt_add_qml_module(appSingletonTest
                      URI SingletonTest
                      VERSION 1.0
                      QML_FILES main.qml
                                Colors.qml
                                SomeComponent.qml
                  )
                  

                  This strange, so far I put all my QML files to dedicated folder (qml/) to separate it from C++ and everything was working (see my first example code) - only the singleton causes some problem.

                  I could consider this as workaround but I do not like it since I will mix QML with C++ and it will be a mess :-(

                  EDIT: It seems that this construction works too:

                  set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                  set_source_files_properties(qmlfiles/main.qml PROPERTIES QT_RESOURCE_ALIAS main.qml)
                  set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_RESOURCE_ALIAS Colors.qml)
                  set_source_files_properties(qmlfiles/SomeComponent.qml PROPERTIES QT_RESOURCE_ALIAS SomeComponent.qml)
                  qt_add_qml_module(appSingletonTest
                      URI SingletonTest
                      VERSION 1.0
                      QML_FILES qmlfiles/main.qml
                                qmlfiles/Colors.qml
                                qmlfiles/SomeComponent.qml
                  )
                  
                  ekkescornerE Offline
                  ekkescornerE Offline
                  ekkescorner
                  Qt Champions 2016
                  wrote on 26 Jan 2024, 13:45 last edited by
                  #8

                  @KejPi open a bugreport because QML SINGLETON doesn't work if not in root folder

                  ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                  5.15 --> 6.9 https://t1p.de/ekkeChecklist
                  QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                  MesrineM 1 Reply Last reply 26 Jan 2024, 14:57
                  0
                  • ekkescornerE ekkescorner
                    26 Jan 2024, 13:45

                    @KejPi open a bugreport because QML SINGLETON doesn't work if not in root folder

                    MesrineM Offline
                    MesrineM Offline
                    Mesrine
                    wrote on 26 Jan 2024, 14:57 last edited by
                    #9

                    @ekkescorner

                    I do not know why the one from the post does not work, but singletons from subdirectories work.

                    I used here

                    ekkescornerE K 2 Replies Last reply 26 Jan 2024, 15:22
                    0
                    • MesrineM Mesrine
                      26 Jan 2024, 14:57

                      @ekkescorner

                      I do not know why the one from the post does not work, but singletons from subdirectories work.

                      I used here

                      ekkescornerE Offline
                      ekkescornerE Offline
                      ekkescorner
                      Qt Champions 2016
                      wrote on 26 Jan 2024, 15:22 last edited by
                      #10

                      @Mesrine aaah - good to know. just porting my apps from QMake to CMake. next step will be to modernize my apps, where I'll need QML SINGLETONS, too

                      ekke ... Qt Champion 2016 | 2024 ... mobile business apps
                      5.15 --> 6.9 https://t1p.de/ekkeChecklist
                      QMake --> CMake https://t1p.de/ekkeCMakeMobileApps

                      1 Reply Last reply
                      0
                      • K KejPi
                        24 Jan 2024, 19:20

                        It seems all QML files must be in root folder including some other custom components files.

                        If I do this, it works:

                        set_source_files_properties(Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                        qt_add_qml_module(appSingletonTest
                            URI SingletonTest
                            VERSION 1.0
                            QML_FILES main.qml
                                      Colors.qml
                                      SomeComponent.qml
                        )
                        

                        This strange, so far I put all my QML files to dedicated folder (qml/) to separate it from C++ and everything was working (see my first example code) - only the singleton causes some problem.

                        I could consider this as workaround but I do not like it since I will mix QML with C++ and it will be a mess :-(

                        EDIT: It seems that this construction works too:

                        set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                        set_source_files_properties(qmlfiles/main.qml PROPERTIES QT_RESOURCE_ALIAS main.qml)
                        set_source_files_properties(qmlfiles/Colors.qml PROPERTIES QT_RESOURCE_ALIAS Colors.qml)
                        set_source_files_properties(qmlfiles/SomeComponent.qml PROPERTIES QT_RESOURCE_ALIAS SomeComponent.qml)
                        qt_add_qml_module(appSingletonTest
                            URI SingletonTest
                            VERSION 1.0
                            QML_FILES qmlfiles/main.qml
                                      qmlfiles/Colors.qml
                                      qmlfiles/SomeComponent.qml
                        )
                        
                        J Offline
                        J Offline
                        Janson
                        wrote on 29 Jan 2024, 10:32 last edited by Janson
                        #11
                        This post is deleted!
                        1 Reply Last reply
                        0
                        • K Offline
                          K Offline
                          KejPi
                          wrote on 29 Jan 2024, 21:11 last edited by
                          #12

                          I have a small example project that clearly shows it does not work as expected. I can share it but I do not know how to do it here. Maybe I did something wrong - I have juste created project in QtCreator and moved all QML files in subdirectory.

                          1 Reply Last reply
                          0
                          • MesrineM Mesrine
                            26 Jan 2024, 14:57

                            @ekkescorner

                            I do not know why the one from the post does not work, but singletons from subdirectories work.

                            I used here

                            K Offline
                            K Offline
                            KejPi
                            wrote on 29 Jan 2024, 21:14 last edited by
                            #13

                            @Mesrine Could it be that you only have singleton in the module while I have all my QML files there?

                            1 Reply Last reply
                            0
                            • K KejPi
                              24 Jan 2024, 18:30

                              I do not know how to attach file, so this is cope and paste of minimal example:

                              CMakeList.txt

                              cmake_minimum_required(VERSION 3.16)
                              
                              project(SingletonTest VERSION 0.1 LANGUAGES CXX)
                              
                              set(CMAKE_CXX_STANDARD_REQUIRED ON)
                              
                              find_package(Qt6 6.4 REQUIRED COMPONENTS Quick)
                              
                              qt_standard_project_setup()
                              
                              qt_add_executable(appSingletonTest
                                  main.cpp
                              )
                              
                              set_source_files_properties(qml/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)
                              qt_add_qml_module(appSingletonTest
                                  URI SingletonTest
                                  VERSION 1.0
                                  QML_FILES qml/main.qml
                                  QML_FILES qml/Colors.qml
                              )
                              
                              # Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
                              # If you are developing for iOS or macOS you should consider setting an
                              # explicit, fixed bundle identifier manually though.
                              set_target_properties(appSingletonTest PROPERTIES
                              #    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appSingletonTest
                                  MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
                                  MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
                                  MACOSX_BUNDLE TRUE
                                  WIN32_EXECUTABLE TRUE
                              )
                              
                              target_link_libraries(appSingletonTest
                                  PRIVATE Qt6::Quick
                              )
                              
                              include(GNUInstallDirs)
                              install(TARGETS appSingletonTest
                                  BUNDLE DESTINATION .
                                  LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
                                  RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
                              )
                              
                              

                              main.cpp:

                              #include <QGuiApplication>
                              #include <QQmlApplicationEngine>
                              
                              int main(int argc, char *argv[])
                              {
                                  QGuiApplication app(argc, argv);
                              
                                  QQmlApplicationEngine engine;
                                  const QUrl url(u"qrc:/SingletonTest/qml/main.qml"_qs);
                                  QObject::connect(
                                      &engine,
                                      &QQmlApplicationEngine::objectCreationFailed,
                                      &app,
                                      []() { QCoreApplication::exit(-1); },
                                      Qt::QueuedConnection);
                                  engine.load(url);
                              
                                  return app.exec();
                              }
                              

                              qml/main.qml:

                              import QtQuick
                              import SingletonTest
                              
                              Window {
                                  width: 640
                                  height: 480
                                  visible: true
                                  title: qsTr("Hello World")
                              
                                  Rectangle {
                                      width: parent.width/2
                                      height: parent.height/2
                                      anchors.centerIn: parent
                                      color: Colors.myColor
                                  }
                              }
                              

                              qml/Colors.qml:

                              pragma Singleton
                              import QtQuick
                              
                              QtObject {
                                  id: colors
                                  readonly property color myColor: "red"
                              }
                              

                              When I run it I get this message:

                              qrc:/SingletonTest/qml/main.qml:14: TypeError: Colors was a singleton at compile time, but is not a singleton anymore.
                              
                              MesrineM Offline
                              MesrineM Offline
                              Mesrine
                              wrote on 30 Jan 2024, 07:41 last edited by Mesrine
                              #14

                              @KejPi

                              I have used your minimal example and works ok :) .

                              The only thing I changed was that instead of CMakeList.txt i named CMakeLists.txt.

                              I have tested it with qt(shared libraries) 6.5,6.6,6.7 in Linux.

                              Make sure you are using the correct CMakeLists.txt.
                              And let us know your platform and Qt version.

                              1 Reply Last reply
                              0
                              • K Offline
                                K Offline
                                KejPi
                                wrote on 30 Jan 2024, 18:35 last edited by KejPi
                                #15

                                Yes, it was only typo, I use the CMakeLists.txt created by Qt Creator.
                                I am running it on MacOS 14.2, Qt version 6.5.3

                                MesrineM 1 Reply Last reply 31 Jan 2024, 06:53
                                0
                                • K KejPi
                                  30 Jan 2024, 18:35

                                  Yes, it was only typo, I use the CMakeLists.txt created by Qt Creator.
                                  I am running it on MacOS 14.2, Qt version 6.5.3

                                  MesrineM Offline
                                  MesrineM Offline
                                  Mesrine
                                  wrote on 31 Jan 2024, 06:53 last edited by
                                  #16

                                  @KejPi
                                  Do you run the application that is on the build directory or the installed one?

                                  Try putting
                                  set_source_files_properties(qml/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)

                                  before

                                  qt_add_executable(appSingletonTest
                                      main.cpp
                                  )
                                  

                                  in your minimal example.
                                  If that does not work try removing some macos properties in the CMakeLists.txt.
                                  If nothing works I would say you can open a bug as suggested by @ekkescorner

                                  K 1 Reply Last reply 31 Jan 2024, 18:51
                                  0
                                  • MesrineM Mesrine
                                    31 Jan 2024, 06:53

                                    @KejPi
                                    Do you run the application that is on the build directory or the installed one?

                                    Try putting
                                    set_source_files_properties(qml/Colors.qml PROPERTIES QT_QML_SINGLETON_TYPE TRUE)

                                    before

                                    qt_add_executable(appSingletonTest
                                        main.cpp
                                    )
                                    

                                    in your minimal example.
                                    If that does not work try removing some macos properties in the CMakeLists.txt.
                                    If nothing works I would say you can open a bug as suggested by @ekkescorner

                                    K Offline
                                    K Offline
                                    KejPi
                                    wrote on 31 Jan 2024, 18:51 last edited by KejPi
                                    #17

                                    @Mesrine I run the application directly from Qt Creator after building it.
                                    Moving set_source_files_properties did not help, the problem is the same.

                                    Bug report created https://bugreports.qt.io/browse/QTBUG-121758

                                    1 Reply Last reply
                                    0

                                    1/17

                                    23 Jan 2024, 21:57

                                    • Login

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