当发生以下情况时,我正试图用QML创建一个简单的GUI:
-
文本项可以使用ApplicationWindow 下的锚点对齐
-
在Tab中复制剪切的相同代码(我刚刚更改了id)会导致一个错误:ReferenceError:textC未定义。这导致文本C被放置在文本B的顶部(另请参阅图片)
QML代码:
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.1
ApplicationWindow {
id: applicationWindow1
visible: true
width: 640
height: 480
title: qsTr("MyApp")
Text{
id: textA
text: qsTr("Test A")
}
Text{
id: textB
text: qsTr("Test B")
anchors.left: textA.right //aligns textB nicely against textA
}
TabView{
anchors.top: textB.bottom //also alignts TabView nicely against textB
Tab{
title: qsTr("TEST")
Text{
id: textC
text: qsTr("Test C")
}
Text{
id: textD
text: qsTr("Test D")
anchors.left: textC.right //nope... this doesn't work even though
//textC lives under the same parent
}
}
}
}
图片:http://s2.postimg.org/hzvyntxfd/info.png
据我所知,锚应该工作,因为textC和textD生活在同一个父级下。
是我遗漏了什么,还是QML中不允许这样做?
提前感谢!
正如cmannett85所指出的,Tab只能包含一个元素。用布局(或矩形)封装两个文本项就可以了!