6

MainPage.qmlが挿入されたmain.qmlがあります。

initialPage: MainPage {tools: toolBarLayout}

Symbian用に作成することを選択したためです。私が試してみると:

QObject *mainPage = rootObject->findChild<QObject*>("MainPage");
if (mainPage)
    QDeclarativeProperty(mainPage, "toets").write(3);

メッセージは届きませんが、エラーはありません。「if(mainPage)」を使用してSIGNALをMainPageのSLOTに接続しようとしましたが、応答もありません。私はなんとかメインに信号を送ることができましたが、試してみると:

function changeNum(num)
{
     MainPage.changeNum(num)
}

mainの関数を実行するときとは異なり、console.logからメッセージをまったく受け取らないため、関数が実行されることはありません。また、他のメソッドもメッセージをログに記録したり、残りの機能を実行したりしなかったため、機能しなかったことも知っています。

問題は、MainPageがIDを持つ要素として作成されていないことにあると思います。これを引き起こしている可能性があるものを知っていますか?

4

1 に答える 1

9

findChildは検索しませんが、オブジェクト内に追加するだけidobjectNameプロパティを検索します(ドキュメントを参照)。MainPage

initialPage: MainPage {
    objectName: "MainPage"      
    tools: toolBarLayout
}

プロパティを追加しなくても、のinitialPageプロパティを介してそのオブジェクトにアクセスすることもできます。rootObjectobjectName

QObject * mainPage = QDeclarativeProperty(rootObject, "initialPage").object();
if (mainPage)
     QDeclarativeProperty(mainPage, "toets").write(3);
于 2012-05-19T23:09:27.350 に答える