Получите размер QStringList в QML из свойства, переданного из серверной части C++

0

Вопрос

Конечно, это глупый вопрос, но я не могу от него отказаться...

Существует ли какой-либо метод на стороне QML, чтобы получить размер QStringList, переданный в качестве свойства из серверной части c++? Я могу использовать свойство для заполнения модели выпадающего списка, но я не могу найти прямой способ получить размер (конечно, я могу предоставить вызываемый метод из cpp, но это не то, что я хочу)

пример:

тест.h

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

private:
qStringList m_availableCameras

тест.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

Лучший ответ

1

A QStringList действует как массив строк JS в QML. В общем, вы можете использовать Arrayфункции на нем : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

А когда вы не можете, вы можете явно сделать его реальным массивом сArray.from

В вашем случае вы хотитеlength:

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

Отлично, спасибо. Просто для информации, для меня это сработало без скобок: if(test.availableCameras.длина === 1)
Matteo Barbieri

Действительно, извините, что это ошибка с моей стороны.
GrecKo

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................