เอาของขนาดของ QStringList ใน QML จากทรัพย์สินผ่านจาก C++ปรับแต่งโปรแกรมเบื้องหลั

0

คำถาม

แน่นอนว่าเป็นคำถามโง่ๆแต่ผมไม่สามารถเอามันออกไปจากมัน...

มันมีวิธีการอยู่ใน QML กด้านหนึ่งของให้ขนาดของ QStringList ผ่านไปเป็นทรัพย์สินอกจาก c++ปรับแต่งโปรแกรมเบื้องหลั? ฉันสามารถใช้ทรัพย์สินอยากจะบอกรุ่นของช่องเลือกแต่ฉันไม่สามารถค้นหาตรงไปตรงมาทางที่จะเอาขนาด(แน่นอนฉันสามารถเปิดเผยข้อ invokable ธีการออกจากที่ 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

เป็ QStringList ทำตัวเป็น JS อาเรย์ของใช้เส้นสายอยู่ใน 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ý
..................................................................................................................

ดังอยู่ในนี้หมวดหมู่

ดังคำถามอยู่ในนี้หมวดหมู่