QML-Combobox'u nasıl alabilirim.Başka bir bileşenden currentText?

0

Soru

Qml'yi öğrenmeye yeni başladım ve Combobox'u nasıl alacağına dair bir sorum var.Başka bir bileşenden currentText.

kod örneği:

App {
    id: app
    width: px(250); height: px(250)

    NavigationStack {
        Page {
            id: page
            navigationBarHidden: true
            AppText { text: "startpage" }
            SimpleButton{
                x: 220; y: 0; onClicked: page.navigationStack.push(settingsPage)
            }
            AppText {
                x: 0; y: 50; text: "text " + comboBox1.currentText
            }
        }
    }

    Component {
        id: settingsPage
        Page {
          navigationBarHidden: true
          AppText { text: qsTr("settings page") }
          SimpleButton{
              x: 220; y: 0; onClicked: page.navigationStack.push(lastPage)
          }

          ComboBox {
              id: comboBox1
              currentIndex: 0
              x: 10; y: 40
              style: ComboBoxStyle {
                  label: Text {
                      text: control.currentText
                  }
              }
              model: ListModel {
                  ListElement { text: "green" }
                  ListElement { text: "dark-green" }
                  ListElement { text: "blue" }
              }
          }

          AppText {
              x: 0; y: 90; text: "text " + comboBox1.currentText
          }
        }
    }

    Component {
        id: lastPage
        Page {
          navigationBarHidden: true
          AppText { text: qsTr("last page") }
          SimpleButton{
              x: 220; y: 0; onClicked: page.navigationStack.push(page)
          }
          AppText {
              x: px(50); y: px(90); text: "text " + comboBox1.currentText
          }
       }
    }
}

- >Settingspace'deki Combobox'tan seçilen Listelement'i almam ve ıd: lastPage bileşeninde kullanmam gerekiyor: lastPage

Herhangi bir yardım çok takdir edilecektir

combobox components embedded qml
2021-11-17 09:11:20
1

En iyi cevabı

0

Aslında burada hangi öğeleri kullandığınıza dair hiçbir fikrim yok (App, NavigationStack vb.) ancak genel olarak yapı aşağıdaki gibi olabilir:

Window {
    visible: true   
    width: 400
    height: 300
    id: root
    property color someColor: "green"

    Row {
        id: element1
        anchors.centerIn: parent
        Rectangle {
            width: 100
            height: 100
            color: root.someColor
        }

        Rectangle {
            id: element2
            width: 100
            height: 100
            color: "yellow"
            MouseArea {
                anchors.fill: parent
                onClicked: {
                    root.someColor = "blue"
                }
            }
        }
    }
}

Bu element1 her zaman kapsamda olan üst/üst öğesinden bazı özelliklere bağlıdır. Bu yapı denir property bindings qml'de ve çeşitli şekillerde yapılabilir (örneğin Bağlama kullanarak, dinamik öğeler için iyi ). Bu element2 ayrıca özelliğe erişebilir/değiştirebilir ve böylece onu değiştirebilir element2 hemen etkiler element1. Bu, erişmek istediğinizde bir sorunu da çözer element1 şuradan root ve element1 başka bu durumda uygulama çökme olur ne olmaz kapsamında, ya da yoktur ya.

2021-11-17 11:29:59

Window burada önemli değil, sadece konsepti göstermek istedim, çalışan bir örnek
folibis

Diğer dillerde

Bu sayfa diğer dillerde

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