Я только начал использовать QML и столкнулся с ошибкой при попытке использовать extern .qml файл.
Мой main.qml выглядит так:
Rectangle
{
...
MyButton{
width: rootRec.width/2
height: rootRec.height/8
anchors.centerIn: rootRec
borderColor: "dimgray"
backColor: "white"
borderWidth: 5
radius: 14
text: "<b>Hello</b>"
fontSize: Math.round(rootRec.height/10)
}
}
Хотя MyButton.qml выглядит так:
Item{
id: button
property string backColor
property string borderColor
property int borderWidth
property int radius
property string text
property int fontSize
property string textColor
Rectangle
{
id: whiteRec
// color: "white"
color:button.backColor
width: parent.width
height: parent.height
// anchors.centerIn: rootRec
border.color: borderColor
// border.color: "dimgray"
border.width: 5
radius: button.radius
// radius: 14
gradient: Gradient {
GradientStop { position: 0.0; color: "lightskyblue" }
GradientStop { position: 1.0; color: "dimgrey" }
}
}
Text
{
anchors.centerIn: whiteRec
text: button.text
font.pixelSize: button.fontSize
color: button.textColor
}
MouseArea
{
id: whiteRecMouse
hoverEnabled: true
onEntered:
{
whiteRec.rotation=180
}
onExited:
{
whiteRec.rotation=0
}
anchors.fill: whiteRec
onClicked: {
Qt.quit()
}
}
}
Когда я пытаюсь запустить его с помощью qmlscene, я получаю сообщение об ошибке:
.../main.qml:16 MyButton is not a type
:-1 File name case mismatch
Я пытался разрешить это с помощью Tools-> QML / JS-> Reset Code Model, но это не помогло.
Почему это происходит и как я могу решить это?
Мой профессиональный файл:
QT += quick
CONFIG += c++11
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Refer to the documentation for the
# deprecated API to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp
RESOURCES += qml.qrc
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
# Additional import path used to resolve QML modules just for Qt Quick Designer
QML_DESIGNER_IMPORT_PATH =
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target