2012-05-19 35 views
6

bul ++ Ben MainPage.qml ile main.qml var sokulur:QML C Çocuk

initialPage: MainPage {tools: toolBarLayout} 

Ben Symbian için bunu yapmayı tercih çünkü. i çalıştığınızda:

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

Ben de birlikte MainPage bir YUVASı bir SİNYALİ bağlayan denedim, mesaj yoluyla gelmiyor ama hiçbir hata var "(MainPage) eğer" ama aynı zamanda herhangi bir yanıt vardır . Gerçi ana kadar bir sinyal almak başardınız ama ben çalıştığınızda:

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

Ben hiç yapmam aksine console.log bir mesaj alamadım çünkü işletilirse asla fonksiyonu olduğunda ana işlev koşar. Ayrıca diğer yöntemlerin işe yaramadığını da biliyorum çünkü bir mesaj da kaydetmedim ya da işlevlerinin geri kalanını yürütmedim.

Sorun, MainPage'de kimliğe sahip bir öğe olarak oluşturulmamasında yalan olabilir. Buna ne neden olabileceğini biliyor musun?

cevap

8

findChildid ama sadece MainPage nesnesinin içinde ekleyebilir objectName özellik (documentation bakınız) aramaz: Ayrıca içinde initialPage özelliği üzerinden bu nesneye erişebilir

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

Ben objectname EV ekledikten sonra, bunu kimliği için görünüyordu,

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

Teşekkür: gerek kalmadan rootObject bir objectName özellik eklemek için erything iyi çalıştı. – Gerharddc