12

こんにちは皆さん、私は QT を初めて使用し、ある qml を別の qml からロードする際に問題があります。

 import QtQuick 2.3
 import QtQuick.Controls 1.2

TabView {
    width: 360
    height: 360

    Component.onCompleted: {
        addTab("Tab 1", tab1)

      addTab("Tab 2", tab2)
    }

    Component {
        id: tab1
        Rectangle {color: "red"}
    }

    Component {
        id: tab2
        Rectangle {color: "blue"}
    }
}

そして、同じディレクトリにある別のqml(main.qml)を通して表示しようとしています

import QtQuick 2.3
import QtQuick.Controls 1.2
import "."

ApplicationWindow {
visible: true
width: 640
height: 480
title: qsTr("Main")

MyTabView {}

}

しかし、プロジェクトを実行しようとすると、このエラーが発生します

QQmlApplicationEngine がコンポーネント qrc:/qml/main.qml:11 のロードに失敗しました TabView はタイプではありません

MyTabView.qml に M Caps があり、MyTabView.qml と main.qml が同じディレクトリにあることに注意してください。

誰かが私がやっている間違いを指摘できますか? 私が指摘したいことの1つは、MyTabView {}内部main.qmlではなく MyTabView.qml のすべてのコードを置き換えると、プログラムはエラーを出さず、正しく実行されるということです。前もって感謝します

4

4 に答える 4

5

同様の問題がありました。

qrc:AGview.qml:8:15: AGraph は型ではありません

私はそれを解決しました:私の元のコード(私のmain.cpp内):

view.setSource(QUrl("qrc:AGview.qml"));

作業中のもの:

view.setSource(QUrl("qrc:/AGview.qml"));

スラッシュがないと、実際のフォルダーを検索しないと思います。

于 2015-03-11T17:04:13.053 に答える
0

「TabView.qml」の名前を「MyTabView.qml」などに変更する必要があります。

その輸入のせいで

import "."

「QtQuick.Controls 1.2」とローカルフォルダー「。」のTabViewが競合しています。

于 2014-11-17T10:02:29.900 に答える