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 भेजा जाता है), अर्थात्, यदि वस्तुओं की संख्या के बराबर था करने के लिए एक और अद्यतन करने के बाद, वहाँ भी एक वस्तु है, लेकिन अलग अलग विशेषताओं के साथ, कोई redrawing जगह लेता है, पुराने बटन बनी हुई है । इसके अलावा, यह किसी भी तरह पर निर्भर करता है क्रम. भी, अगर मैं लाइन को हटाने के साथ रंग, मॉडल अद्यतन करेगा.