2012-05-19 11 views
6

を探す++挿通:QML Cは、私がMainPage.qmlとmain.qmlを持っている子

initialPage: MainPage {tools: toolBarLayout} 

を私はシンビアンのためにそれを作ることを選択するため。私がしようとすると:

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

を私はまたしてメインページにシグナルをスロットに接続しようとしている、メッセージが通ってくるしませんが、エラーはありません「(メインページ)があれば、」それはまた、応答がありません。でも、私はメインに介して信号を得ることができたが、している私がしようとすると:

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

私は全く私がやるとは異なりにconsole.logからメッセージを取得しないために実行されることは決してありません機能と、メインの機能走る私はまた、他のメソッドが動作しなかったことも知っています。なぜなら、メッセージを記録したり、残りの機能を実行したりしなかったからです。

私はこの問題がMainPage内に存在する可能性があり、idを持つ要素として作成されていないと考えています。これを引き起こしている可能性がありますか?

答えて

8

findChildidしかし、あなたは、単にMainPageオブジェクトの内部に追加することができますobjectNameプロパティが(documentationを参照)を探していません:あなたはまたのinitialPageプロパティを介してそのオブジェクトにアクセスすることができ

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

objectNameプロパティを追加する必要なく、rootObject

QObject * mainPage = QDeclarativeProperty(rootObject, "initialPage").object(); 
if (mainPage) 
    QDeclarativeProperty(mainPage, "toets").write(3); 
+1

私はObjectNameのEVを追加した後おかげで、私は、それがIDを探したと思いましたエイリアシングはうまくいきました。 – Gerharddc

関連する問題