모델을 변경하지 않는 다시 그리기의 개체에서 때로는 프로그램입니다..

0

질문

            Repeater {
                model: myModel.buttonParameters
                delegate: Button
                {
                    width: 47
                    height:  47
                    contentItem: Text {
                        id: content
                        text: modelData.name
                        font.family: MyStyle.fontFamily
                        fontSizeMode: Text.Fit
                        font.pixelSize: 30
                        font.styleName: "Bold"
                        topPadding: height / 6
                        color: modelData.visibility ? MyStyle.colorFromSeriesName(this.text) : MyStyle.dividerColor
                        horizontalAlignment: Text.AlignHCenter
                        verticalAlignment: Text.AlignVCenter
                    }

                    background: Rectangle
                    {
                        anchors.fill: parent
                        radius: 4
                        color: MyStyle.backgroundColor
                        border.color:MyStyle.dividerColor
                        border.width: 2
                    }

                    onClicked: {
                        cntModel.visibilityOfChartChanged(modelData.name, "plot");
                    }
                }
            }
            
            On the C++ side.
            myModel.buttonParameters is a QList<MyModel*> , where MyModel is a class inherited from QObject.
            
           Q_PROPERTY(QVariant buttonParameters READ buttonParametersList NOTIFY buttonParametersChanged)

           QVariant buttonParametersList()
          {
             return QVariant::fromValue(m_buttonParametersList );
          }
           

문제는 특정 변경에서 모델 (신호 buttonParametersChanged 전송),즉 는 경우에는 개체의 수와 동일하다고 하고 후 업데이트 또한 개체를 하나,하지만 서로 다른 특성을 다시 그리는 없 은,오래된 버튼을 남아 있습니다. 또한,어떻게든 그것에 따라 달라집 런타임입니다. 또한,제거하면 나도 라인과 컬러,모델을 업데이트됩니다.

c++ qml repeater
2021-11-16 13:19:09
1

최고의 응답

0

문제는 buttonParametersChanged 신호를 트리거하는 임무에 대한의 새로운 용기(QList<>)을 buttonParameters. 그것이 트리거되지 않에서 변경 내용 의 기존 QList<>에 할당된 제공합니다.

그러나,당신은 항상 수동으로 트리거 buttonParametersChanged 알고 있는 경우 수정의 내용 QList<>을 제공해야 하는 당신은 당신이 원하는 효과.

참고로,이 프로그램입니다..ListModel 또는 C++에 해당하는 것이 더 적합 사용한 경우. 많은 유저 구성요소가 설계를 구체적으로 통합 그들과 함께 손잡이의 경우 컨테이너 내용이 변화하고 있다.

2021-11-16 14:26:45

는 것,전화 신호 buttonParametersChanged 수동으로,그리고 특정 상황에서 그것은 작동하지 않는
Narina

나는 추가 onButtonParametersChanged 처리기는 로그는 아웃도록 무언가가 있는지 확인할 수 있습니다 신은 정말 발생할 때를 생각합니다.
David K. Hess

신호가 확실히 발생,내가 확인됩니다.
Narina

제공하는 최소한 재현 가능한 이
GrecKo

다른 언어로

이 페이지는 다른 언어로되어 있습니다

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