with QtQuick2 Content Introduction to IPO.Plans software Data model - - PowerPoint PPT Presentation

with qtquick2 content
SMART_READER_LITE
LIVE PREVIEW

with QtQuick2 Content Introduction to IPO.Plans software Data model - - PowerPoint PPT Presentation

Ensuring Efficiency in Factory and Production Planning Effi fizienzsicherheit in de der Fab abrik- und nd Prod oduktionsplanung. Building complex QML-GUIs with QtQuick2 Content Introduction to IPO.Plans software Data model concept


slide-1
SLIDE 1

Effi fizienzsicherheit in de der Fab abrik- und nd Prod

  • duktionsplanung.

Building complex QML-GUIs with QtQuick2

Ensuring Efficiency in Factory and Production Planning

slide-2
SLIDE 2

Content

Introduction to IPO.Plan‘s software Data model concept Worker Gantt – View Material Zone Editor – View Rack Planogram - View Live implementing

  • 3. Dezember 2014

2

slide-3
SLIDE 3

Introduction to IPO.Plan‘s software

Located in Leonberg (services) and Ulm (research and development department) 60 employees approximately Our process experts provide manifold services, supported by our homemade expert tools Main customers are Daimler AG, Siemens AG, Eisenmann GmbH & Co. KG, Liebherr GmbH

  • 3. Dezember 2014

3

slide-4
SLIDE 4

Introduction to IPO.Plan‘s software

Software products made by IPO.Plan:

  • 3. Dezember 2014

4

Purely software Software + Hardware

slide-5
SLIDE 5

Data model concept

MVC-Concept

  • 3. Dezember 2014

5

Model ViewController View

  • C++
  • BasicModels
  • C++
  • SortFilterModel
  • RepresentationModel
  • CollectionModel
  • Set needed

context properties

  • QML
  • Possibility to implement

Model-Behavior

  • Methods
  • Signal/Slots
  • Invokables
  • Properties
  • Signal/Slots
  • Invokables
slide-6
SLIDE 6

Data model concept

Model

Using only one custom-defined data role („objectRole“) Providing instance references directly to QML- Code by this role You have to inherit the „QAbstractListModel“ Detailed description in attachments

  • 3. Dezember 2014

6

slide-7
SLIDE 7

Data model concept

SortFilterModel

  • 3. Dezember 2014

7

Model<T> T4 T3 T1 T2 SortFilterModel<T> T1 T2 T3 Example

  • Ascending index order
  • Filter indices < 4

SourceModel

slide-8
SLIDE 8

Data model concept

RepresentationModel

  • 3. Dezember 2014

8

Model<T> T4 T3 T1 T2 RepresentationModel<R> R4 R3 R1 R2 Example

  • Use a type R to represent a single

source instance SourceModel Keep in mind that instances of R may already exists or be allocated by the RepresentationModel

slide-9
SLIDE 9

Data model concept

RepresentationModel

  • 3. Dezember 2014

9

Model<T> T4 T3 T1 T2 SourceModel Example 2

  • Use a type S to represent multiple

source instances RepresentationModel<S> S34 S12

slide-10
SLIDE 10

Data model concept

CollectionModel

  • 3. Dezember 2014

10

Model<T> T1 T2 T3 T4 CollectionModel<R> U1 R1 U2 R2 U3 R3 U4 R4 Example

  • Collect by a random criteria

SourceModel1 Model<U> U1 U2 U3 U4 SourceModel2 T and U have to have the mutual super class R

slide-11
SLIDE 11

Data model concept

Combining models

  • 3. Dezember 2014

11

You can combine the mentioned models to create manifold behavior Just queue them in a model chain Later: RackPlanogram in IPO.Log

CollectionModel SortFilterModel Model1 Model2 View

slide-12
SLIDE 12

Worker Gantt - View

Worker

Use a SortFilterModel for Products

ProductLine

Use a ListModel of Activities and ActivityGroups

ActivityGroup Activity

slide-13
SLIDE 13

Worker Gantt - View

  • 3. Dezember 2014

13

WorkerGantt Worker ProductLine Activities and ActivityGroups

The hierarchy of the Worker Gantt - View

slide-14
SLIDE 14

Material Zone Editor - View

  • 3. Dezember 2014

14

ComponentOnAreaGroup

Uses a SortFilterModel of selected Components

Area

Contains all components in a simple ListModel

ComponentOnArea ComponentOnAreaEdit

slide-15
SLIDE 15

Rack Planogram - View

  • 3. Dezember 2014

15

Planogram PlanogramArea

Uses a SortFilterModel to get all areas with selected components PlanogramRackComponent

PlanogramRackInfoGrid

PlanogramInfoGrid

slide-16
SLIDE 16

Rack Planogram - View

  • 3. Dezember 2014

16

The hierarchy of the Rack Planogram - View Planogram PlanogramBoxGroupInfoGrid PlanogramInfoGrid PlanogramArea PlanogramRackComponent PlanogramRackInfoGrid PlanogramBoxGroupComponent PlanogramInfoGrid

slide-17
SLIDE 17

We are hiring!

  • 3. Dezember 2014

17

If you… …are interested in our stuff …are of course firm in Qt Qt, , QM QML …are firm in C+ C++, C# C#, Ja Java or another language …want to work in a youn

  • ung, cr

creativ ive and fle flexible team …search for cha challe llenges …looking for virtual rea ealit ity, si simulatio ion and 3D 3D graphic Maybe you can find the right job for you at IPO.Plan  You are also welcome to our sta tand here at QtD QtDeveloperD rDays

slide-18
SLIDE 18

03.12.2014 Sichtbar machen. Selber machen. Besser machen. 18

slide-19
SLIDE 19

Your contact person

IPO.Plan GmbH

Martin Lang E-Mail: martin.lang@ipoplan.de Office Ulm. Grünhofgasse 3 | D-71229 Ulm Fon: +49.7152.70010.82 | Fax: +49.7152.70010.99

03.12.2014 Sichtbar machen. Selber machen. Besser machen. 19

slide-20
SLIDE 20

Your contact person

IPO.Plan GmbH

Dipl.-Ing. Dennis Effmert E-Mail: dennis.effmert@ipoplan.de Office Ulm. Grünhofgasse 3 | D-71229 Ulm Fon: +49.7152.70010.82 | Fax: +49.7152.70010.99

03.12.2014 Sichtbar machen. Selber machen. Besser machen. 20

slide-21
SLIDE 21

Attachment: Data model concept

class DataListModel : public QAbstractListModel { Q_OBJECT public: … enum Roles {ObjectRole = Qt::UserRole + 1}; void append(QObject *newObject); QHash<int, QByteArray> roleNames() const; QVariant data(const QModelIndex &index, int role) const; … protected: QList<QObject*> m_objects; }

  • 3. Dezember 2014

21

DataModel.h

slide-22
SLIDE 22

Attachment: Data model concept

… void DataListModel::append(QObject *object) { beginInsertRows(QModelIndex(), m_objects.count(), m_objects.count()); m_objects.append(object); // To observe the QObject::destroyed() signal if (m_tracking) trackObject(object); endInsertRows(); } …

  • 3. Dezember 2014

22

DataModel.cxx

slide-23
SLIDE 23

Attachment: Data model concept

… QHash<int, QByteArray> DataListModel::roleNames() const { QHash<int, QByteArray> roles; roles[DataListModel::ObjectRole] = "object"; return roles; } …

  • 3. Dezember 2014

23

DataModel.cxx

slide-24
SLIDE 24

Attachment: Data model concept

… QVariant DataListModel::data(const QModelIndex &index, int role) const { if (index.row() < 0 || index.row() >= m_objects.size()) return QVariant(); switch (role) { case ObjectRole: return QVariant::fromValue(m_objects.at(index.row())); } return QVariant(); } …

  • 3. Dezember 2014

24

DataModel.cxx