MyButton не относится к типу: -1 Несоответствие регистра имени файла - PullRequest
0 голосов
/ 08 июля 2019

Я только начал использовать 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
...