आकार पाने के लिए एक QStringList QML में से एक संपत्ति से पारित C++ बैकएंड

0

सवाल

निश्चित रूप से एक मूर्खतापूर्ण सवाल है, लेकिन मैं नहीं मिल सकता है इसे से बाहर...

वहाँ है किसी भी विधि में QML पक्ष के आकार पाने के लिए एक QStringList पारित कर दिया के रूप में एक संपत्ति से c++ बैकएंड? मैं का उपयोग कर सकते हैं संपत्ति को भरने के लिए मॉडल की एक combobox लेकिन मैं नहीं मिल सकता है, एक सीधे तरीके से आकार प्राप्त करने के लिए (बेशक मैं खुलासा कर सकते हैं एक invokable विधि से सीपीपी लेकिन यह नहीं है कि मैं क्या करना चाहते हैं)

उदाहरण:

परीक्षण । ज

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

एक QStringList कृत्यों के रूप में एक जे एस सरणी स्ट्रिंग में QML. सामान्य रूप में आप का उपयोग कर सकते हैं Array's कार्यों पर यह : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array

और जब तुम नहीं कर सकते, आप कर सकते हैं explicitely यह एक वास्तविक सरणी के साथ Array.from

आपके मामले में आप चाहते हैं length:

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

सही है, धन्यवाद. सिर्फ जानकारी के लिए, मेरे लिए यह काम बिना कोष्ठक: यदि(परीक्षण.availableCameras.लंबाई === 1)
Matteo Barbieri

वास्तव में खेद है कि एक गलती से मेरा हिस्सा है ।
GrecKo

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में