QML开发问题记录
1. qml 中的属性名称首字母必须小写
import QtQuick 2.7
// 属性界面调整的过程
PlotAttriPanelForm {
//属性命名首字母必须小写
property var textInputComp:Qt.createComponent("TextInputAttributeItem.qml")
property var imageComp: Qt.createComponent("ImageFillAttriItem.qml")
}
//
2. qml 调用C++ 标记的Q_INVOKABLE首字母必须小写
Q_INVOKABLE 标记的方法qml中可以直接调用
class PlotViewControl:public QObject
{
Q_OBJECT
public:
PlotViewControl(GeoMapPlot* plotPugin,PlotViewEvent* plotEvent);
~PlotViewControl();
//加载标绘图层过程
void LoadPlotLayer(GLOBE_NAME::PlotLayer* plotLayer);
//标绘模型信息,首字母必须小写
Q_INVOKABLE QAbstractItemModel* plotModel();
};
3. qml 中定义的组件或对象首字母必须大写
4. qml 中定义的组件根节点不要给定高宽,动态创建qml时会影响高宽的设置
在Item 上不能给定高宽,给定后动态创建qml 高宽会无法再次赋值
Item {
id:colorAtr
// 显示label 内容
property string text: qsTr("ddd")
//颜色内容
property color value: "#ff0000"
property color tranro: "transparent"
}
5. qml 动态清除子控件的方法
在item遍历chilren 然后调用destroy方法释放。
for(var i=0;i<item.children.length;i++)
item.children[i].destroy();
item.children.length=0;