当我在TumblerColumn
中使用Tumbler
时,我得到QML QQuickText: Cannot anchor to an item that isn't a parent or sibling
,当我单独使用Tumbler
时,错误就不会出现。我无法弄清TumblerColumn
有什么问题。
这是我的Dialog
代码
import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Dialogs 1.2
import QtQuick.Extras 1.2
Dialog {
id: customTimerInputDialog
title: "Custom timer"
height: 150
width: 300
standardButtons: StandardButton.Ok | StandardButton.Cancel
onAccepted: {
}
onRejected: {
console.log("Rejected")
}
Column {
anchors.fill: parent
Text {
text: "Timer"
height: 40
}
Tumbler {
id: tumbler
TumblerColumn {
model: 10
}
TumblerColumn {
model: 60
}
}
}
}
TumblerColumn(TumblerStyle.qml)complete source code
...
// line 294
property Component delegate: Item {
implicitHeight: (control.height - padding.top - padding.bottom) / tumblerStyle.visibleItemCount
Text {
id: label
text: styleData.value
color: "#666666"
opacity: 0.4 + Math.max(0, 1 - Math.abs(styleData.displacement)) * 0.6
font.pixelSize: Math.round(TextSingleton.font.pixelSize * 1.25)
anchors.centerIn: parent
}
}
...
更新
时遇到同样的错误Popup {
id: popup
x: 100
y: 100
width: 200
height: 300
modal: true
focus: true
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
Tumbler {
id: intervalPicker
TumblerColumn {
model: 10
}
TumblerColumn {
model: 60
}
}
}
答案 0 :(得分:-1)
您正在混合Qt Quick Controls 1和2.在您导入的对话框/弹出窗口中
QtQuick.Controls 2.2
和QtQuick.Extras 1.2
。两个导入都定义了一个Tumbler
,但Qt Quick Extras中的一个用于Qt Quick Controls 1(参见TumblerStyle.qml中的导入)。
如果你想使用TumblerColumn和TumblerStyle,你必须使用Qt Quick Extras 1.2中的Tumbler。
如果您想使用Qt Quick Controls 2中的Tumbler,您不能使用Qt Quick Extras 1.2中的任何翻转设备。
如果您需要在qml文件中导入Qt Quick Extras 1.2和Qt Quick Controls 2,则需要使用as
限定符:
import QtQuick.Extras 1.2 as Extra
import QtQuick.Controls 2.2 as Controls2
...
Extra.Tumbler
{
...
}
Controls2.Tumbler
{
...
}
...