Obtener el tamaño de un QStringList en QML de una propiedad pasó de C++ backend

0

Pregunta

Seguramente es una pregunta tonta pero no puedo salir de ella...

¿Hay algún método en el QML lado para obtener el tamaño de un QStringList pasa como una propiedad de la de c++ backend? Puedo usar la propiedad para rellenar el modelo de un combobox, pero no puedo encontrar un camino recto para obtener el tamaño (por supuesto que puedo exponer una invocable método de la cpp, pero no es lo que quiero)

ejemplo:

prueba.h

class Test : public Workflow
{
  Q_OBJECT
  Q_PROPERTY(QStringList availableCameras MEMBER m_availableCameras NOTIFY availableDevicesChanged)
[...]

private:
qStringList m_availableCameras

prueba.qml

    GroupBox{
      anchors.fill: parent
      title: "Camera Panel"
      property string selectedCamera: ""
    
      function showImage(){
        if(test.availableCameras.size() === 1) // NOT WORKING
        {
          return configurator.lastSingleImage
        }
        if(selectedCamera === test.rightCamSerialConf)
        {
          return configurator.lastRightImage
        }
        if(selectedCamera === test.leftCamSerialConf)
        {
          return configurator.lastLeftImage
        }
    
      }
      ComboBox{
                  model: test.availableCameras // WORKING
                  editable: false
                  onEditTextChanged: selectedCamera = editText
                } 
   [...]
   }
c++ qml qt
2021-11-17 09:06:16
1

Mejor respuesta

1

Un QStringList actúa como un JS matriz de cadenas en QML. En general, usted puede utilizar Array's de las funciones es : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

Y cuando usted no puede, usted puede explicitamente hacer una matriz con Array.from

En el caso de que usted desee length:

if(test.availableCameras.length === 1)
2021-11-17 13:23:26

Perfecto, gracias. Sólo para tu información, a mí me ha funcionado sin el paréntesis: si(prueba.availableCameras.longitud === 1)
Matteo Barbieri

De hecho, siento que es un error de mi parte.
GrecKo

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................