使用setSeconds();在黑莓级联中关闭我的闪屏

时间:2013-10-04 08:49:36

标签: blackberry time blackberry-10 cascade

嗯,这里我有一个屏幕,我希望在2-3秒后关闭。为此我使用setDate()方法。

我对这款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"

                }

            }

        }
    }
  ]
}

Context Invokable:日期日期(...)

Date对象用于处理日期和时间。 使用新的Date()构造函数创建日期对象。 有四种方式来启动日期: new Date()//当前日期和时间(或) 新日期(毫秒)//自1970/01/01(或)以来的毫秒 新日期(dateString)(或) 新日期(年,月,日,小时,分钟,秒,毫秒)

Invokable:number setSeconds(number sec)

设置日期对象的秒数。

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

以下是Timer的示例代码。

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");