如何将ListElement的属性值拆分为多行编写
解决QML ListElement多行属性文本的编写问题
方案1:使用QML多行字符串字面量(推荐)
QML从Qt 5.11开始支持用三个双引号"""包裹多行字符串,这种写法既可以让代码里的长文本换行对齐,又能灵活控制最终内容是否包含缩进空格。
如果不需要内容里带缩进空格,保持代码整洁的同时让内容行顶格:
ListElement { key: "key"; value: 1; description: """Very long, full paragraph description that extends way off the screen which I would like to wrap in code nicely.""" }
如果需要保留内容的缩进格式,可将内容行与属性名对齐:
ListElement { key: "key"; value: 1; description: """ Very long, full paragraph description that extends way off the screen which I would like to wrap in code nicely. """ }
方案2:拆分属性并在显示时拼接
若你的Qt版本不支持多行字符串,可将长文本拆分为多个子属性,在使用文本的控件中通过拼接组合,避免ListElement中出现脚本表达式报错。
ListElement代码:
ListElement { key: "key"; value: 1; descPart1: "Very long, full paragraph description"; descPart2: "that extends way off the screen which I would like to"; descPart3: "wrap in code nicely."; }
显示时拼接(以Text控件为例):
Text { text: model.descPart1 + " " + model.descPart2 + " " + model.descPart3 }
方案3:显示层面处理换行(补充)
如果只是希望文本在界面中自动换行,无需修改代码编写方式,可直接使用Text控件的换行属性:
Text { text: model.description wrapMode: Text.WordWrap // 按单词自动换行 width: 300 // 设置控件宽度触发换行逻辑 }
内容的提问来源于stack exchange,提问作者Joseph Farrar
相关产品推荐
相关产品推荐

