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. A QML type showing rows and a scroll bar

A QML type showing rows and a scroll bar

Scheduled Pinned Locked Moved Unsolved QML and Qt Quick
11 Posts 4 Posters 1.0k Views
  • 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.
  • Q Offline
    Q Offline
    qcoderpro
    wrote on last edited by qcoderpro
    #1

    Hi all,

    For part of my Qt Quick project, I need to expose data (including text and numbers in Persian) in rows with four or five columns, similar to a table. Each cell must be able to have a color, font for the text and emit the clicked signal when clicked/touched. The number of rows is various, because they can be added/removed. We should be able to scroll the rows. And we also should be able to search for a specific row using the text column, for example, in a separate row right after the first (title) row.

    Is there a built-in QML type that covers the features above all? If yes, what component please? And if not, from where should I start to reach what I want?

    Thanks.

    J.HilkJ 1 Reply Last reply
    0
    • 6thC6 Offline
      6thC6 Offline
      6thC
      wrote on last edited by
      #2

      Off the top of my head: https://doc.qt.io/qt-5/qml-qtquick-controls2-scrollview.html

      1 Reply Last reply
      0
      • Q qcoderpro

        Hi all,

        For part of my Qt Quick project, I need to expose data (including text and numbers in Persian) in rows with four or five columns, similar to a table. Each cell must be able to have a color, font for the text and emit the clicked signal when clicked/touched. The number of rows is various, because they can be added/removed. We should be able to scroll the rows. And we also should be able to search for a specific row using the text column, for example, in a separate row right after the first (title) row.

        Is there a built-in QML type that covers the features above all? If yes, what component please? And if not, from where should I start to reach what I want?

        Thanks.

        J.HilkJ Offline
        J.HilkJ Offline
        J.Hilk
        Moderators
        wrote on last edited by
        #3

        @qcoderpro
        There's a couple of ways you can do that.

        QML has a TableView, there's also a ListView. For both you can specify the delegate (the item that is drawn), both have a Scrollbar component that you can override

        You can do a flickable, columns and repeaters. And a manually created and attached ScrollBar

        There are many ways to Rome.


        Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


        Q: What's that?
        A: It's blue light.
        Q: What does it do?
        A: It turns blue.

        1 Reply Last reply
        4
        • Q Offline
          Q Offline
          qcoderpro
          wrote on last edited by
          #4

          Ow thanks. Which is easier to pick out and better for that non-western language please?

          J.HilkJ 1 Reply Last reply
          0
          • Q qcoderpro

            Ow thanks. Which is easier to pick out and better for that non-western language please?

            J.HilkJ Offline
            J.HilkJ Offline
            J.Hilk
            Moderators
            wrote on last edited by
            #5

            @qcoderpro the text format/Languag doesn't matter either way. QString is able to display them.

            Reading more carefully through your opening post.
            I think the best option for you would be to create a c++ model do your stuff there (including the search) and expose that to qml.

            Probably best to subclass QAbstractItemModel
            take a look here for further information:
            https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html


            Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


            Q: What's that?
            A: It's blue light.
            Q: What does it do?
            A: It turns blue.

            Q 1 Reply Last reply
            2
            • J.HilkJ J.Hilk

              @qcoderpro the text format/Languag doesn't matter either way. QString is able to display them.

              Reading more carefully through your opening post.
              I think the best option for you would be to create a c++ model do your stuff there (including the search) and expose that to qml.

              Probably best to subclass QAbstractItemModel
              take a look here for further information:
              https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

              Q Offline
              Q Offline
              qcoderpro
              wrote on last edited by qcoderpro
              #6

              @j-hilk

              Sorry, I changed my mind. A table is too and unnecessarily sophisticated for the task which can be simply done using a ListView. The delegate can be a button with some data (text and numbers etc) and when clicked it shows the thorough version of data inside a dialog box. New lists can also be added and we can scroll up/down the list and remove any list element at will. But I'm not sure I can search for a element given a text, for instance.
              If I need to use C++ as the back-end (which is more preferable) instead of a ListView, probably a suitable abstract class is QAbstractListModel Class. Do you agree up to here? If yes, where can I find an example to start the primary part of the back-end section using that class? It's complicated and I don't know how to derive it in a class. :(

              J.HilkJ 1 Reply Last reply
              0
              • Q qcoderpro

                @j-hilk

                Sorry, I changed my mind. A table is too and unnecessarily sophisticated for the task which can be simply done using a ListView. The delegate can be a button with some data (text and numbers etc) and when clicked it shows the thorough version of data inside a dialog box. New lists can also be added and we can scroll up/down the list and remove any list element at will. But I'm not sure I can search for a element given a text, for instance.
                If I need to use C++ as the back-end (which is more preferable) instead of a ListView, probably a suitable abstract class is QAbstractListModel Class. Do you agree up to here? If yes, where can I find an example to start the primary part of the back-end section using that class? It's complicated and I don't know how to derive it in a class. :(

                J.HilkJ Offline
                J.HilkJ Offline
                J.Hilk
                Moderators
                wrote on last edited by
                #7

                @qcoderpro

                yes there are a couple of way to do this.

                Take a look here:
                https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

                It covers all usual methods, and gives an example for them


                Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                Q: What's that?
                A: It's blue light.
                Q: What does it do?
                A: It turns blue.

                Q 1 Reply Last reply
                1
                • J.HilkJ J.Hilk

                  @qcoderpro

                  yes there are a couple of way to do this.

                  Take a look here:
                  https://doc.qt.io/qt-5/qtquick-modelviewsdata-cppmodels.html

                  It covers all usual methods, and gives an example for them

                  Q Offline
                  Q Offline
                  qcoderpro
                  wrote on last edited by
                  #8

                  @j-hilk
                  Thank you.
                  I wrote this and get many errors and am sure it's awkward and must be changed to be a good program for the task. So please where it's need put some changes. I'm new in this case. :)

                  dataModel.h:

                  #ifndef DATAMODEL_H
                  #define DATAMODEL_H
                  
                  #include <QAbstractListModel>
                  #include <QPushButton>
                  
                  class DataModel: public QAbstractListModel
                  {
                      Q_OBJECT
                      Q_PROPERTY(QVector mList READ showList WRITE addList NOTIFY mListChanged)
                  
                  public:
                      explicit DataModel(QObject* parent = nullptr);
                      void addList(const QString&, const char&, const int&);
                      void showLsit();
                  
                  private:
                      QVector<QPushButton> mList;
                  };
                  
                  #endif // DATAMODEL_H
                  

                  dataModel.cpp:

                  #include "datamodel.h"
                  
                  DataModel::DataModel(QObject* parent) : QAbstractListModel(parent)
                  { }
                  
                  void DataModel::addList(const QString &name, const char& ch, const int& n)
                  {
                      mList.push_back(QPushButton(name + ch + n));
                      emit mListChanged();
                  }
                  
                  void DataModel::showLsit()
                  {
                  
                  }
                  

                  main.cpp:

                  #include <QGuiApplication>
                  #include <QQmlApplicationEngine>
                  #include <QQuickStyle>
                  
                  #include "datamodel.h"
                  
                  int main(int argc, char *argv[])
                  {
                      QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
                      QGuiApplication app(argc, argv);
                  
                      QQuickStyle::setStyle("Material");
                  
                      qmlRegisterType<DataModel>("Model", 1, 0, "DataModel");
                  
                      QQmlApplicationEngine engine;
                      const QUrl url(QStringLiteral("qrc:/main.qml"));
                      QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                                       &app, [url](QObject *obj, const QUrl &objUrl) {
                          if (!obj && url == objUrl)
                              QCoreApplication::exit(-1);
                      }, Qt::QueuedConnection);
                      engine.load(url);
                  
                      return app.exec();
                  }
                  

                  main.qml:

                  import QtQuick 2.12
                  import QtQuick.Window 2.12
                  import QtQuick.Controls 2.12
                  import QtQuick.Layouts 1.12
                  import QtQuick.Controls.Material 2.12
                  
                  import Model 1.0
                  
                  ApplicationWindow {
                      id: appWin
                      visible: true
                      width: 800; height: 600
                      title: qsTr("Test")
                  
                      Material.background: "#E0E0E0"
                  
                     DataModel {
                       id: firstList
                       addList("test1", 'd', 12);
                       showList();
                      }
                  }
                  
                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    Darta
                    wrote on last edited by Darta
                    #9

                    @qcoderpro

                    Hello here,

                    I would do it like this :

                    dataToDisplay.h:

                    class DataToDisplay:  public QObject
                    {
                        Q_OBJECT
                        Q_PROPERTY(string text1ToDisplay, READ getText1ToDisplay, NOTIFY text1ToDisplayChanged)
                        Q_PROPERTY(string text2ToDisplay, READ getText2ToDisplay, NOTIFY text2ToDisplayChanged)
                        Q_PROPERTY(int intToDisplay, READ getIntToDisplay, NOTIFY intToDisplayChanged)
                        Q_PROPERTY(real realToDisplay, READ getRealToDisplay, NOTIFY realToDisplayChanged)
                    
                    public:
                        DataToDisplay(string text1, string text2, int myInt, int myReal);
                        ~DataToDisplay();
                        string getText1ToDisplay();
                        string getText2ToDisplay();
                        string getIntToDisplay();
                        string getRealToDisplay();
                    
                    signals:
                        void text1ToDisplayChanged();
                        void text2ToDisplayChanged();
                         void intToDisplayChanged();
                        void realToDisplayChanged();
                    
                    private:
                        string m_text1;
                        string m_text2;
                        int m_int;
                        real m_real;
                    }
                    

                    dataToDisplay.cpp:

                        DataToDisplay(string text1, string text2, int myInt, int myReal) : 
                        m_text1(text1), m_text2(text2), m_int(myInt), m_real(myReal)
                        {
                             
                        }
                    
                        ~DataToDisplay()
                        {
                            
                        }
                    
                        string getText1ToDisplay()
                        {
                            return m_text1;
                        }
                        string getText2ToDisplay();
                        {
                            return m_text2;
                        }
                        string getIntToDisplay()
                        {
                            return m_int;
                        }
                        string getRealToDisplay();
                        {
                            return m_real;
                        }
                    

                    DataManager.h:

                    #include "DataToDisplay.h"
                    
                    class DataManager:  public QObject
                    {
                        Q_OBJECT
                        Q_PROPERTY(QList<QObject*> mList READ showList NOTIFY mListChanged)
                    
                    public:
                    DataManager();
                    ~DataManager();
                    
                    QList<Object*> showList() { return m_list }
                    
                    signals:
                    void    mListChanged();
                    
                    private:
                        QList<QObject*> m_list;
                    }
                    

                    main.cpp:

                    #include <QGuiApplication>
                    #include <QQmlApplicationEngine>
                    #include <QQuickStyle>
                    
                    #include "DataManager.h"
                    
                    int main(int argc, char *argv[])
                    {
                        QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
                        QGuiApplication app(argc, argv);
                    
                        QQuickStyle::setStyle("Material");
                    
                       qmlRegisterType<DataToDisplay>("Model", 1, 0, "DataToDisplay");
                    
                        QQmlApplicationEngine engine;
                        const QUrl url(QStringLiteral("qrc:/main.qml"));
                        QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                                         &app, [url](QObject *obj, const QUrl &objUrl) {
                            if (!obj && url == objUrl)
                                QCoreApplication::exit(-1);
                        }, Qt::QueuedConnection);
                        engine.load(url);
                    
                        return app.exec();
                    }
                    

                    main.qml:

                        ListView
                        {
                            //anchor or layout the listview to the size of your page
                            model: Model.showList()
                    
                            delegate: Rectangle
                            {
                                width = parent.widht
                                height = parent.height * 0.2
                    
                                RowLayout
                                {
                                    anchor.fill: parent
                                    
                                    Rectangle
                                    {
                                        Layout.fillHeight = true
                                        Layout.preferedWidth = parent.width * 0 . 2
                                        color: playWithYourColorHere
                    
                                        Text { anchors.centenIn: parent; Text: modelData.text1ToDisplay }
                                    }
                    
                                    Rectangle
                                    {
                                        Layout.fillHeight = true
                                        Layout.preferedWidth = parent.width * 0 . 2
                                        color: playWithYourColorHere
                    
                                        Text { Layout.fillHeight = true; Layout.preferedWidth = parent.width * 0 . 2; Text: modelData.text2ToDisplay}
                                    }
                    
                                    Rectangle
                                    {
                                        Layout.fillHeight = true
                                        Layout.preferedWidth = parent.width * 0 . 2
                                        color: playWithYourColorHere
                    
                                        Text { anchors.centenIn: parent; Text: modelData.intToDisplay}
                                    }
                    
                                    Rectangle
                                    {
                                        Layout.fillHeight = true
                                        Layout.preferedWidth = parent.width * 0 . 2
                                        color: playWithYourColorHere
                    
                                        Text { anchors.centenIn: parent;  Text: modelData.realToDisplay}
                                    }
                                }
                            }
                        }
                    

                    I didn't test it just write it for you at hand directly here so I would expect some few minor error to correct here and there.
                    Then you just have to play with the list of QObject into DataManager and your ListView from main.qml will adjust itself.

                    For the searching part you will have to implement it outside of the ListView but still make it work withe the same list.

                    And last thing if you change any value for your dataToDisplay into the cpp it will be automaticaly readjusted into the listView but if you do it inside a QML you will have to call the mListChanged signal from DataManager.

                    I Think that's it.

                    Q 1 Reply Last reply
                    0
                    • D Darta

                      @qcoderpro

                      Hello here,

                      I would do it like this :

                      dataToDisplay.h:

                      class DataToDisplay:  public QObject
                      {
                          Q_OBJECT
                          Q_PROPERTY(string text1ToDisplay, READ getText1ToDisplay, NOTIFY text1ToDisplayChanged)
                          Q_PROPERTY(string text2ToDisplay, READ getText2ToDisplay, NOTIFY text2ToDisplayChanged)
                          Q_PROPERTY(int intToDisplay, READ getIntToDisplay, NOTIFY intToDisplayChanged)
                          Q_PROPERTY(real realToDisplay, READ getRealToDisplay, NOTIFY realToDisplayChanged)
                      
                      public:
                          DataToDisplay(string text1, string text2, int myInt, int myReal);
                          ~DataToDisplay();
                          string getText1ToDisplay();
                          string getText2ToDisplay();
                          string getIntToDisplay();
                          string getRealToDisplay();
                      
                      signals:
                          void text1ToDisplayChanged();
                          void text2ToDisplayChanged();
                           void intToDisplayChanged();
                          void realToDisplayChanged();
                      
                      private:
                          string m_text1;
                          string m_text2;
                          int m_int;
                          real m_real;
                      }
                      

                      dataToDisplay.cpp:

                          DataToDisplay(string text1, string text2, int myInt, int myReal) : 
                          m_text1(text1), m_text2(text2), m_int(myInt), m_real(myReal)
                          {
                               
                          }
                      
                          ~DataToDisplay()
                          {
                              
                          }
                      
                          string getText1ToDisplay()
                          {
                              return m_text1;
                          }
                          string getText2ToDisplay();
                          {
                              return m_text2;
                          }
                          string getIntToDisplay()
                          {
                              return m_int;
                          }
                          string getRealToDisplay();
                          {
                              return m_real;
                          }
                      

                      DataManager.h:

                      #include "DataToDisplay.h"
                      
                      class DataManager:  public QObject
                      {
                          Q_OBJECT
                          Q_PROPERTY(QList<QObject*> mList READ showList NOTIFY mListChanged)
                      
                      public:
                      DataManager();
                      ~DataManager();
                      
                      QList<Object*> showList() { return m_list }
                      
                      signals:
                      void    mListChanged();
                      
                      private:
                          QList<QObject*> m_list;
                      }
                      

                      main.cpp:

                      #include <QGuiApplication>
                      #include <QQmlApplicationEngine>
                      #include <QQuickStyle>
                      
                      #include "DataManager.h"
                      
                      int main(int argc, char *argv[])
                      {
                          QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
                          QGuiApplication app(argc, argv);
                      
                          QQuickStyle::setStyle("Material");
                      
                         qmlRegisterType<DataToDisplay>("Model", 1, 0, "DataToDisplay");
                      
                          QQmlApplicationEngine engine;
                          const QUrl url(QStringLiteral("qrc:/main.qml"));
                          QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                                           &app, [url](QObject *obj, const QUrl &objUrl) {
                              if (!obj && url == objUrl)
                                  QCoreApplication::exit(-1);
                          }, Qt::QueuedConnection);
                          engine.load(url);
                      
                          return app.exec();
                      }
                      

                      main.qml:

                          ListView
                          {
                              //anchor or layout the listview to the size of your page
                              model: Model.showList()
                      
                              delegate: Rectangle
                              {
                                  width = parent.widht
                                  height = parent.height * 0.2
                      
                                  RowLayout
                                  {
                                      anchor.fill: parent
                                      
                                      Rectangle
                                      {
                                          Layout.fillHeight = true
                                          Layout.preferedWidth = parent.width * 0 . 2
                                          color: playWithYourColorHere
                      
                                          Text { anchors.centenIn: parent; Text: modelData.text1ToDisplay }
                                      }
                      
                                      Rectangle
                                      {
                                          Layout.fillHeight = true
                                          Layout.preferedWidth = parent.width * 0 . 2
                                          color: playWithYourColorHere
                      
                                          Text { Layout.fillHeight = true; Layout.preferedWidth = parent.width * 0 . 2; Text: modelData.text2ToDisplay}
                                      }
                      
                                      Rectangle
                                      {
                                          Layout.fillHeight = true
                                          Layout.preferedWidth = parent.width * 0 . 2
                                          color: playWithYourColorHere
                      
                                          Text { anchors.centenIn: parent; Text: modelData.intToDisplay}
                                      }
                      
                                      Rectangle
                                      {
                                          Layout.fillHeight = true
                                          Layout.preferedWidth = parent.width * 0 . 2
                                          color: playWithYourColorHere
                      
                                          Text { anchors.centenIn: parent;  Text: modelData.realToDisplay}
                                      }
                                  }
                              }
                          }
                      

                      I didn't test it just write it for you at hand directly here so I would expect some few minor error to correct here and there.
                      Then you just have to play with the list of QObject into DataManager and your ListView from main.qml will adjust itself.

                      For the searching part you will have to implement it outside of the ListView but still make it work withe the same list.

                      And last thing if you change any value for your dataToDisplay into the cpp it will be automaticaly readjusted into the listView but if you do it inside a QML you will have to call the mListChanged signal from DataManager.

                      I Think that's it.

                      Q Offline
                      Q Offline
                      qcoderpro
                      wrote on last edited by qcoderpro
                      #10

                      @darta
                      Thank you. I removed all obvious errors and code is now this way:

                      // dataManager.h
                      #ifndef DATAMANAGER_H
                      #define DATAMANAGER_H
                      
                      
                      #include "DataToDisplay.h"
                      
                      class DataManager:  public QObject
                      {
                          Q_OBJECT
                          Q_PROPERTY(QList<QObject*> mList READ showList NOTIFY mListChanged)
                      
                      public:
                      DataManager();
                      ~DataManager();
                      
                      QList<QObject*> showList() { return m_list; }
                      
                      signals:
                      void  mListChanged();
                      
                      private:
                          QList<QObject*> m_list;
                      };
                      
                      #endif // DATAMANAGER_H
                      
                      // dataDisplay.h
                      #ifndef DATATODISPLAY_H
                      #define DATATODISPLAY_H
                      
                      #include <QObject>
                      
                      class DataToDisplay:  public QObject
                      {
                          Q_OBJECT
                          Q_PROPERTY(QString text1ToDisplay READ getText1ToDisplay NOTIFY text1ToDisplayChanged)
                          Q_PROPERTY(QString text2ToDisplay READ getText2ToDisplay NOTIFY text2ToDisplayChanged)
                          Q_PROPERTY(int intToDisplay READ getIntToDisplay NOTIFY intToDisplayChanged)
                          Q_PROPERTY(double realToDisplay READ getRealToDisplay NOTIFY realToDisplayChanged)
                      
                      public:
                          DataToDisplay(QString, QString, int, double);
                          ~DataToDisplay();
                          QString getText1ToDisplay();
                          QString getText2ToDisplay();
                          int getIntToDisplay();
                          double getRealToDisplay();
                      
                      signals:
                          void text1ToDisplayChanged();
                          void text2ToDisplayChanged();
                          void intToDisplayChanged();
                          void realToDisplayChanged();
                      
                      private:
                          QString m_text1;
                          QString m_text2;
                          int m_int;
                          double m_real;
                      };
                      
                      #endif // DATATODISPLAY_H
                      
                      // dataToDisplay.cpp
                      #include "dataToDisplay.h"
                      
                      DataToDisplay::DataToDisplay(QString text1, QString text2, int myInt, double myReal) :
                          m_text1(text1), m_text2(text2), m_int(myInt), m_real(myReal)
                      {  }
                      
                      DataToDisplay::~DataToDisplay() { }
                      
                      QString DataToDisplay::getText1ToDisplay()
                      {
                          return m_text1;
                      }
                      
                      QString DataToDisplay::getText2ToDisplay()
                      {
                          return m_text2;
                      }
                      
                      int DataToDisplay::getIntToDisplay()
                      {
                          return m_int;
                      }
                      
                      double DataToDisplay::getRealToDisplay()
                      {
                          return m_real;
                      }
                      
                      // main.cpp 
                      
                      #include <QGuiApplication>
                      #include <QQmlApplicationEngine>
                      #include <QQuickStyle>
                      
                      #include "DataManager.h"
                      
                      int main(int argc, char *argv[])
                      {
                          QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
                          QGuiApplication app(argc, argv);
                      
                          QQuickStyle::setStyle("Material");
                      
                         qmlRegisterType<DataToDisplay>("Model", 1, 0, "DataToDisplay");
                      
                          QQmlApplicationEngine engine;
                          const QUrl url(QStringLiteral("qrc:/main.qml"));
                          QObject::connect(&engine, &QQmlApplicationEngine::objectCreated,
                                           &app, [url](QObject *obj, const QUrl &objUrl) {
                              if (!obj && url == objUrl)
                                  QCoreApplication::exit(-1);
                          }, Qt::QueuedConnection);
                          engine.load(url);
                      
                          return app.exec();
                      }
                      
                      // main.qml
                      import QtQuick 2.12
                      import QtQuick.Window 2.12
                      import QtQuick.Controls 2.12
                      import QtQuick.Layouts 1.12
                      import QtQuick.Controls.Material 2.12
                      
                      import Model 1.0
                      
                      ApplicationWindow {
                          id: appWin
                          visible: true
                          width: 800; height: 600
                          title: qsTr("Accounts Test")
                      
                          Material.background: "#E0E0E0"
                      
                       ListView
                          {
                              //anchor or layout the listview to the size of your page
                              model: Model.showList()
                      
                              delegate: Rectangle
                              {
                                  width: parent.widht
                                  height: parent.height * 0.2
                      
                                  RowLayout
                                  {
                                      anchors.fill: parent
                      
                                      Rectangle {
                                          Layout.fillHeight: true
                                          Layout.preferedWidth: parent.width * 0.2
                                          color: "lightBlue"
                      
                                          Text { anchors.centerIn: parent; Text: modelData.text1ToDisplay }
                                      }
                      
                                      Rectangle {
                                          Layout.fillHeight: true
                                          Layout.preferedWidth: parent.width * 0.2
                                          color: "lightBlue"
                      
                                          Text { Layout.fillHeight: true;
                                              Layout.preferedWidth: parent.width * 0.2;
                                              Text: modelData.text2ToDisplay
                                          }
                                      }
                      
                                      Rectangle {
                                          Layout.fillHeight: true
                                          Layout.preferedWidth: parent.width * 0.2
                                          color: playWithYourColorHere
                      
                                          Text { anchors.centerIn: parent; Text: modelData.intToDisplay }
                                      }
                      
                                      Rectangle {
                                          Layout.fillHeight: true
                                          Layout.preferedWidth: parent.width * 0.2
                                          color: "lightBlue"
                      
                                          Text { anchors.centerIn: parent;  Text: modelData.realToDisplay}
                                      }
                                  }
                              }
                          }
                      }
                      

                      But still there are two errors:
                      ...mingw73_64\include\QtQml\qqmlprivate.h:119: error: use of deleted function 'QQmlPrivate::QQmlElement<DataToDisplay>::QQmlElement()'
                      void createInto(void memory) { new (memory) QQmlElement<T>; }

                      ...mingw73_64\include\QtQml\qqmlprivate.h:98: error: no matching function for call to 'DataToDisplay::DataToDisplay()'

                      And where is the implementation of "dataManager.h" please?

                      1 Reply Last reply
                      0
                      • D Offline
                        D Offline
                        Darta
                        wrote on last edited by Darta
                        #11

                        I Forget that the C++ function that you will use from qml has to be in "public slots"

                        into cpp files function should be notified DataToDisplay::DataToDisplay() for example

                        And to implement your DataManager you can do it into the main.cpp
                        and you will need function to implement your list of DataToDisplay

                        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