elied属性就是当Text的文本文字超过Text的宽度时。文字会出现省略的效果。
import QtQuick 2.9
import QtQuick.Window 2.3
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Rectangle{
anchors.centerIn: parent
width: parent.width / 3
height: parent.height / 2
border.color: "black"
Text{
anchors.centerIn: parent
//width: parent.width
text: "aaaaaa1234567890"
elide: Text.ElideRight
}
}
}
可以看出当 Text本身居中时,文字省略效果就已经失效了。当时如果取消注释会发现文字省略效果又有了。但是文字初始并不是居中的而是左对齐的效果
Rectangle{
width: 40
height: 40
color: "red"
MouseArea{
anchors.fill: parent
onClicked: {
var theArray = [1, 2, 3, 4, 5];
theArray.splice(2);
console.log(theArray);
}
}
}
程序输出
qml: [1,2,3,4,5]
qml: [1,2,3,4,5]
毫无作用。
相反在html中使用的效果如下
DOCTYPE html>
<html>
<head>
<title>这是一个简单的html页面title>
head>
<body>
<script>
let theArray = [1, 2, 3, 4, 5];
theArray.splice(2);
console.log(theArray);
script>
body>
html>
输出
[1, 2]
且在mdn中也提到了,该函数的作用如下,就应该表现和html中的一致才对
虽然警告信息通常来说没啥问题但是能够避免还是尽量避免。
弹出警告信息
QQmlContext *context = engine.rootContext();
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
context->setContextProperty("myModel", 4);
qml中使用
Repeater{
anchors.fill: parent
model: myModel
delegate: Rectangle{
width: parent.width
height: 40
color: "red"
border.color: "black"
}
}
也就是说在engine
加载文件后才注册全局属性然后使用就会报警告,反之则是正常的。