仔细分析控件数据流向
可以分解为4大类
界面元素:
这类大家都比较熟悉:分为 背景(边框阴影) 内容(文字,图片)状态
初始化数据(尽量在一个地方初始化,如果不行,考虑是否需求很烂)
initData();
可以分解为 initApiData()
initUiData();
更新数据
update();
updateApiData()
updateUiData();
保存数据
尽量在同一个地方save,如果不行,尝试改需求。
savaData();
=================
其中界面的数据应该模型化,完全数据表格话
例如用下面数据结构
ListModel{
id: modelData
ListElement {label: QT_TR_NOOP("xxxxxxx"); enumValue: 1};
再定义一个curValue,这样就能判断当前是谁了。
}
Row{
Repeater {
Rectangle {
}
}
}
这样就基本实现了一个可控的界面了。
注意:1. 尽量少使用checked 太复杂,用 signClicked 信号代替(同理触发API的也都用sign信号,这样 initdata 也能用这个信号,就无遗漏了)
2. 每个子控件,考虑是否要增加一个update的函数,方便外面可能要同步。
3. 每次使用 XXXXChanged 要思考一下,是否有不可控的情况,用sign 是否会更可控。