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. set structure in Q_PROPERTY
Forum Updated to NodeBB v4.3 + New Features

set structure in Q_PROPERTY

Scheduled Pinned Locked Moved Solved QML and Qt Quick
2 Posts 1 Posters 169 Views 1 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.
  • M Offline
    M Offline
    Mihaill
    wrote on last edited by Mihaill
    #1

    Hi!
    Me need set structure in Q_PROPERTY. In Qt6 work this code, but in Qt 5 it's not work.

    struct Config
    {
        Q_GADGET
    public:
        Config() {
            m_addressBluetooth = "";
            m_isBody = true;
            m_language = Language::Russian;
            m_frequencyValue = 100;
            m_isReversOn = false;
            m_reverseTimer = 0;
            m_isRedLightOn = false;
            m_brightness = 1;
            m_sound = 1;
            m_load = 1;
            m_isAutoChangeStep = true;
        }
    
        bool operator != (const Config &config){
            return m_addressBluetooth == config.m_addressBluetooth;
        }
    
        QJsonObject toJsonObject() {
            QJsonObject jObject;
            jObject["addressBluetooth"] = m_addressBluetooth;
            jObject["language"] = m_language;
            return jObject;
        }
    
        void loadJsonObject(const QJsonObject &jObject) {
            m_addressBluetooth = jObject["addressBluetooth"].toString();
            m_language = jObject["language"].toInt();
        }
    
        QString m_addressBluetooth;
        bool m_isBody;
        int m_language;
        int m_frequencyValue;
        bool m_isReversOn;
        int m_reverseTimer;
        bool m_isRedLightOn;
        int m_brightness;
        int m_sound;
        int m_load;  //0-2
        bool m_isAutoChangeStep;
        Q_PROPERTY(QString addressBluetooth MEMBER m_addressBluetooth)
        Q_PROPERTY(bool isBody MEMBER m_isBody)
        Q_PROPERTY(int language MEMBER m_language)
        Q_PROPERTY(int frequencyValue MEMBER m_frequencyValue)
        Q_PROPERTY(bool isReversOn MEMBER m_isReversOn)
        Q_PROPERTY(int reverseTimer MEMBER m_reverseTimer)
        Q_PROPERTY(bool isRedLightOn MEMBER m_isRedLightOn)
        Q_PROPERTY(int brightness MEMBER m_brightness)
        Q_PROPERTY(int sound MEMBER m_sound)
        Q_PROPERTY(int load MEMBER m_load)
        Q_PROPERTY(int isAutoChangeStep MEMBER m_isAutoChangeStep)
    };
    

    .h

    Q_PROPERTY(Config config   MEMBER m_config NOTIFY configChanged)
        Config m_config;
    
    1 Reply Last reply
    0
    • M Offline
      M Offline
      Mihaill
      wrote on last edited by
      #2

      I add in main

      qRegisterMetaType<Config>("Config");
      
      1 Reply Last reply
      1

      • Login

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