2013-10-04 38 views
0

嗯,在這裏我有一個屏幕,我想在2-3秒後關閉。爲此我使用setDate()方法。使用setSeconds();關閉我的黑莓級聯閃屏

我對這個Blackberry Cascade QML編程非常新穎。我想附加1個更多的啓動畫面,所以出於這個原因,我想使用計時器按秒關閉和打開工作表。 任何幫助將不勝感激。

在此先感謝。

我已經在下面的代碼。

import bb.cascades 1.0 
import bb.cascades.pickers 1.0 

Page 
{ 
Container 
{ 
    background: Color.Transparent 
    //Todo: fill me with QML 
    onCreationCompleted: 
    { 
     mysheet1.open(); 
     new Date(); 

     **Error is shown in for loop** 
     for(Date.setSeconds(1),Date.setSeconds()<=5 , Date.setSeconds()+1) 
     { 

      if(Date == 5) 
      { 
      mysheet1.closed(); 
      mysheet2.open(); 
      } 
     } 
    } 

    attachedObjects: 
    [ 
     Sheet 
     { 
     id: mysheet1 
     peekEnabled: false 

     Page 
     { 
      Container 
      { 
       background: Color.Transparent 


       ImageView 
       { 
        horizontalAlignment: HorizontalAlignment.Fill 
        verticalAlignment: VerticalAlignment.Fill 
        imageSource: "asset:///splash1.png" 

       } 

      } 

     } 
    } 
    ] 
} 

語境下可調用:日期日期(......)

Date對象用於處理日期和時間的工作。 使用新的Date()構造函數創建Date對象。 有四種啓動日期的方法: new Date()//當前日期和時間(或) 新日期(毫秒)//自1970/01/01(或)以來的毫秒數 new Date(dateString)(或) 新的日期(年,月,日,時,分,秒,毫秒)

可調用:數調用setSeconds(數秒)

設置Date對象的秒。

回答

0

它將使用大量的過程幾秒鐘。但QML中沒有setInterval。 最好的解決辦法是使用C++類,TimeManager.cpp與QTimer:

要暴露C++方法QML當QML被實例化可以作爲ContextProperty寄存器:

QmlDocument *qml = QmlDocument::create("asset:///main.qml").parent(this); 
qml->setContextProperty("TimeManager", new TimeManager()); 

並聲明方法:

Q_INVOKABLE void callLater(int milliSeconds, QObject* sloter); 

實施:

void TimeManager::callLater(int milliSeconds, QObject* sloter){ 
    QTimer::singleShot(milliSeconds, sloter, SLOT(timerEnd())); 
} 

而QML:

onCreationCompleted: { 
    TimeManager.callLater(2500, this); 
} 

onTimerEnd: { 
mysheet1.closed(); 
} 
0

這裏是定時器的樣本代碼。

import bb.cascades 1.0 
import my.timer 1.0 
Page { 
    Container { 
     layout: DockLayout { 
     } 
     onCreationCompleted: { 
      mTimer.start(); 
     } 
     ImageView { 
      id: mImageViewIcon 
      horizontalAlignment: HorizontalAlignment.Fill 
      verticalAlignment: VerticalAlignment.Fill 
      imageSource: "asset:///images/splash.png" 
     } 
     attachedObjects: [ 
      QTimer { 
       id: mTimer 
       interval: 2000 
       onTimeout: { 
        //Push New Page here 
       } 
      } 
     ] 
    } 
} 

不要忘了添加下面一行在main.cpp中

qmlRegisterType<QTimer>("my.timer", 1, 0, "QTimer");