C++ arka ucundan geçirilen bir özellikten Qml'deki bir QStringList boyutunu alın

0

Soru

Elbette aptalca bir soru ama bundan kurtulamıyorum...

QML tarafında, c++ arka ucundan bir özellik olarak geçirilen bir QStringList boyutunu almak için herhangi bir yöntem var mı? Bir combobox modelini doldurmak için özelliği kullanabilirim ancak boyutu elde etmek için düz bir yol bulamıyorum (tabii ki cpp'den çağrılabilir bir yöntem ortaya çıkarabilirim ama istediğim bu değil)

örnek:

test.h

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

private:
qStringList m_availableCameras

test.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

En iyi cevabı

1

A QStringList qml'de bir JS dizge dizisi görevi görür. Genel olarak şunları kullanabilirsiniz Arrayüzerindeki fonksiyonlar : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

Ve yapamayacağınız zaman, bunu açık bir şekilde gerçek bir dizi haline getirebilirsinizArray.from

Senin durumunda istiyorsun.length:

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

Mükemmel, teşekkürler. Sadece bilgi için, benim için parantez olmadan çalıştı: eğer (test.Kullanılabilir kameralar.uzunluk = = = 1)
Matteo Barbieri

Gerçekten, bu benim açımdan bir hata olduğu için üzgünüm.
GrecKo

Diğer dillerde

Bu sayfa diğer dillerde

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