Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. Italian
  4. Creazione modello vista dinamici

Creazione modello vista dinamici

Scheduled Pinned Locked Moved Unsolved Italian
3 Posts 2 Posters 573 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.
  • PollyP Offline
    PollyP Offline
    Polly
    wrote on last edited by
    #1

    Vorrei sapere se la mia idea può essere fattibile:

    1. Creo una classe C++ che contiene elementi che potranno essere di qualsiasi genere
    2. Registro la classe come tipo qml (esempio provaContenitore.qml)
    3. Creo dinamicamente un'istanza di questo tipo qml
      4 creo dinamicamente un altro componente qml (non c++) che contiene una vista e passo in fase di istanziazione una proprietà di provaContenitore.qml che contiene gli elementi come modello del nuovo oggetto qml

    E' una cosa che può funzionare oppure nel passaggio ho dimenticato o sbagliato qualcosa?

    1 Reply Last reply
    0
    • M Offline
      M Offline
      marco_piccolino
      Qt Champions 2017
      wrote on last edited by
      #2

      Ciao Polly, cosa intendi esattamente per creazione dinamica?
      Questo? https://doc.qt.io/qt-5/qtqml-javascript-dynamicobjectcreation.html
      In ogni caso, dalla documentazione qui sopra sembra che il contesto per creareComponent/createObject sia il QQmlContext da cui si invoca il metodo: https://doc.qt.io/qt-5/qtqml-javascript-dynamicobjectcreation.html#maintaining-dynamically-created-objects

      Per quale motivo hai necessità di creare dinamicamente? Non è una strategia molto comune nelle applicazioni QML, a parte quando si utilizzano i Loader.

      1 Reply Last reply
      0
      • PollyP Offline
        PollyP Offline
        Polly
        wrote on last edited by Polly
        #3

        Ti spiego, vorrei creare una semplice app turistica. L'idea di fondo sarebbe quella di usare un file XML per estrapolare i nomi delle attrazioni turistiche in modo da riempire una listview e quello l'ho già fatto. In base all'attrazione scelta il programma dovrebbe creare una pagina (questa pagina la creo dinamicamente e la inserisco in uno stackview) e facendo sempre riferimento al file XML recuperare il tipo di elemento (pagina web, video, slideshow) e il suo source. Gli elementi della pagina sarebbero 4 (messi casualmente a seconda della attrazione) inseriti in una gridview e vorrei crearli dinamicamente. Per l'idea avevo pensato di usare come la nella lista delle attrazioni l'XMLLISTMODEL , ma poi non riuscivo a creare gli elementi da inserire . Mi è stato suggerito di fare un if all'interno del javascript per scegliere dal type i file Qml e creando 3 component in base ad ogni tipo di file. E inserire attraverso un loader. Fatto ma poi non mi apparivano a schermo e quindi mi suggerivano ulteriormente di tornare alla funzione dello stackview per metterli con push() ma non sapevo come. Allora ho pensato di passare tramite il C++ per estrapolare gli elementi di XML in base al pulsante cliccato, caricarli in un contenitore, generarli con create() della classe object e poi inserirli in un contenitore di object stessi e passarlo infine come modello alla vista che come scritto sarebbe stato creato e inizializzato. Ammetto che è un po' contorta come strada ma è la prima volta che mi cimento con un'idea del genere.

        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