更新1
这个想法是从main.qml中更改CardForm的前面和后面,因为我想要使用多个CardForm实例。我尝试做他们在这里所做的事情,但它不起作用。
以下是代码:
CardForm.qml
import QtQuick 2.0
Flipable {
id: sCard
width: 75
height: 200
property bool flipped: false
property string front: "Front"
property string back: "Back"
property alias callFront : front
property alias callBack : back
front: Rectangle{
id: front
anchors.fill: sCard
border.width: 2
border.color: "black"
radius: 5
Text{
anchors.centerIn: parent
text: sCard.front
}
}
back: Column{
Rectangle{
id: back
anchors.fill: sCard
radius: 5
border.width: 2
border.color: "black"
Text{
anchors.centerIn: parent
text: sCard.front
}
Text{
anchors.centerIn: parent
text: sCard.front
}
}
}
transform: Rotation{
id: flip
origin.x: sCard.width
origin.y: sCard.height/2
axis.x: 0; axis.y: 1; axis.z: 0 // set axis.y to 1 to rotate around y-axis
angle: 0 // the default angle
}
states: State {
name: "back"
PropertyChanges {
target: flip
angle: 180
}
when: sCard.flipped
}
transitions: Transition{
NumberAnimation {
target: flip
property: "angle"
duration: 200
}
}
MouseArea{
anchors.fill: parent
onClicked: sCard.flipped = !sCard.flipped
}
}
main.qml
import QtQuick 2.7
import QtQuick.Controls 2.0
import QtQuick.Layouts 1.0
ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Neuro Seed")
SwipeView {
id: swipeView
anchors.fill: parent
currentIndex: tabBar.currentIndex
Column {
CardForm{
id: test
anchors.centerIn: parent
test.callFront: "Hello World!"
test.callBack: "Bonjour le Monde!
}
}
}
}
这里是错误信息:
SHGetSpecialFolderPath() 失败,标准位置为 "Shared Configuration",clsid=0x1c。()
qrc:/main.qml:17:13: QML CardForm:back 是只读属性
qrc:/main.qml:17:13: QML CardForm:front 是只读属性
qrc:/main.qml:16:9: QML Column:无法为 Column 内部的项目指定 top、bottom、verticalCenter、fill 或 centerIn 锚点。Column 将无法正常工作。
c1.getFront() 和 getBack() 来自我创建的 C++ 类。我将这些更改为“Hello World!”和“Bonjour le Monde!”
CardForm
的第 9 行和第 10 行,你试图覆盖Flipable
的属性,但这不太可能是故事的结局。请还包括所有错误信息。 - derM