在此QML
示例中,未显示Rectangle
。标签 Usuarios 会出现,但矩形本身不会出现。非常奇怪的行为,你能说出为什么会这样吗?您可以使用qmlscene
测试此示例。
示例代码:
主档案:
$ cat UsersGroups.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.3
Page {
anchors.fill: parent
header: TabBar {
id: bar
width: parent.width
TabButton {
text: qsTr("Users")
}
TabButton {
text: qsTr("Groups")
}
TabButton {
text: qsTr("Schedules")
}
}
StackLayout {
width: parent.width
currentIndex: bar.currentIndex
Users {
id: users
}
Groups {
id: groups
}
Schedules {
id: schedules
}
}
}
辅助文件
用户档案:
$ cat Users.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0
import QtQuick.Dialogs 1.2
import QtQuick.Layouts 1.3
import Qt.labs.settings 1.0
Item {
anchors.fill: parent
Rectangle {
anchors.fill: parent
color: "blue"
border.color: "red"
border.width: 5
Label {
text: "Usuarios"
}
}
}
群组档案:
$ cat Groups.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
Item {
Label {
text: "Grupos"
}
}
计划文件:
$ cat Schedules.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
Item {
Label {
text: "Schedules"
}
}
欢迎任何有关解决此问题的指示。
答案 0 :(得分:1)
StackLayout
的高度缺失,因此StackLayout {
width: parent.width
height: parent.height
//...
}
的默认高度为0,这是不可见的。将高度设置为AggressionExpression
可以解决问题:
and(new AggregationExpression() {
@Override
public DBObject toDbObject(AggregationOperationContext context) {
return new BasicDBObject("$setIsSubset",
Arrays.<Object> asList(
Arrays.<Object> asList("584e6253e17ed10f0a8cba1d",
"583e9719e17e8c1bf80da2fe"),
"$registered_users.user_id"));
}
}).as("is_registered"));