您的位置:首页 > 游戏 > 手游 > Qt QML 坑

Qt QML 坑

2024/10/6 2:28:38 来源:https://blog.csdn.net/hu626626/article/details/139981323  浏览:    关键词:Qt QML 坑

Qt QML 坑


QML


Listview

1、不定高item 导致item重叠

ListView {id: _cityListViewproperty var _cityArray: [{ type:"A",cityArray:[]},{ type:"B",cityArray:[]},{ type:"C",cityArray:[]},{ type:"D",cityArray:[]}]model: ListModel{}// 一个类型的城市delegate: Rectangle {width: _cityListView.widthheight: {var region = _cityListView._cityArray[index];if(region.cityArray.length <= 5)return 30else{if(region.cityArray.length%5 === 0)return (region.cityArray.length/5)*30;elsereturn (region.cityArray.length/5+1)*30;}}}
}

这个list中存放item是不定高的,但是会出现item重叠的问题。
解决方法:
将 model = null,再重新赋值 model 就可以了。

2、Qt中 enum 在 QML 中使用并比较
在 c++ 中定义

enum IfoEndType{HotCityEnd = 1,AllCityEnd};Q_ENUM(IfoEndType)

在 qml 中存储并比较

property var ifoEndInt: ChooseCityModel.AllCityEndifoEndInt === ChooseCityModel.AllCityEnd  //错的,得不到正确值
ifoEndInt == ChooseCityModel.AllCityEnd //正确,可以得到正确值

3、打印 qml 的 object

var obj = {}
obj.type = "aaa"
console.log("obj--",obj) //这样只会打印   qml: obj-- [object Object]function printObjectContent(obj, indent = "") {for (var key in obj) {if (obj.hasOwnProperty(key)) {if (typeof obj[key] === "object" && !Array.isArray(obj[key])) {console.log(indent + key + ": {")printObjectContent(obj[key], indent + "  ")console.log(indent + "}")} else {console.log(indent + key + ": " + JSON.stringify(obj[key]))}}}}printObjectContent(obj) //用这个函数打印内容

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com