我有一个类似于repeater
的ui,用于显示从pyqtProperty
获取的不同用户的数据:
切换switch
用于切换my data
下内容的可见性。这些内容将是文本(如上图所示)或图像网格。
切换关闭:
+
图标可在文本和图像网格之间切换内容的可见性。也就是说,单击+
图标,description 0
和description 1
将被隐藏,并显示图像网格。然后,加号图标将替换为-
图标,如下所示:
现在,单击-
图标,将隐藏图像网格,并且将再次显示description0
和description1
。这次是相反的操作,如下所示:
切换switch
,+
和-
会触发与连接{的signal
update_store
连接的相同的pyqtSlot
{1}},key
和flag
的值来更新ui的bool
的状态。然后,store
通过store
将更新后的notify
状态传递回ui,以反映相应的更改(信息流类似于pyqtSignal
)。 / p>
我想实现的是,当ui位于redux
关闭且显示switch
图标的状态下(如上图2所示),单击{{ 1}}图标将在+
上切换,并显示图像网格,并且ui就像您在第三幅图像中看到的一样。
我试图通过以下方式通过单击+
图标两次触发相同的信号来实现上述目的:
switch
第一个信号被成功触发,但是第二个信号没有触发,并且我得到一个错误+
,并最终得到了这样的内容:
发生这种情况的原因是,当第一个信号触发时,MouseArea {
anchors.fill: parent
onClicked: {
mySignal(modelData.key, 'expand', !modelData.expand)
if (!modelData.active) {
mySignal(modelData.key, 'active', true)
}
}
}
// expand determines if text or grid of images is shown
// active determines if the contents are shown
已经在重新渲染更改,而当第二个信号触发时,“原始”信息不再存在?
在这种情况下,需要采取什么措施才能实现预期的操作?解决方案似乎不是解决方案,因为“原始”信息仍然不会出现。将两者合并为一个,然后触发连接到不同ReferenceError: modelData is not defined
的{{1}}来处理此问题,这不是我要使用的解决方案。 qml
是一种动态方法,也可以更改signal
中的其他值。