рд▓рдВрдмреЗ рдЕрдВрддрд░рд╛рд▓ рдкрд░ рд╕реЗрд▓рдлрд┐рд╢ рдУрдПрд╕ рдЯрд╛рдЗрдорд░ рдСрдкрд░реЗрд╢рди

рдкрд░рд┐рдЪрдп


рдХрд╛рдлреА рдмрд╛рд░, рдЬрдм рдЖрд╡реЗрджрди рдореЗрдВ рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдирд┐рд╢реНрдЪрд┐рдд рдЕрд╡рдзрд┐ рдХреЗ рдмрд╛рдж рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рд╕рдмрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдПрдХ рдЯрд╛рдЗрдорд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреБрдХрдЯреАрдорд░ рдпрд╛ рд╕реЗрд▓рдбреЛрд░реЛ ред

рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, QTimer рдУрдПрд╕ рдкрд░ рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдЯрд╛рдЗрдорд░ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдорд╛рдирдХ Timer рддрддреНрд╡ рдпрд╛ рдЗрд╕рдХреЗ рд╕реА ++ рд╕рдордХрдХреНрд╖, QTimer рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЗрди рдЯрд╛рдЗрдорд░ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдирд┐рд▓рдВрдмрд┐рдд рд░рд╣рддрд╛ рд╣реИ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдЙрдкрдХрд░рдг рдиреАрдВрдж рдореЗрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рджреЛ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдиреЗ рдЕрднреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ рд╣реИред

рдпрд╣ рд▓реЗрдЦ рдПрдХ рдорд╛рдирдХ рдХрд╛ рдкрд░рд┐рдЪрдп рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдЕрдирд┐рд░реНрджрд┐рд╖реНрдЯ рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрд▓рдлрд╝рд┐рд╢ рдУрдПрд╕ рдХреЗ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдмрд┐рдВрджреБ


рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рд╕реЗрд▓рдлрд╝рд┐рд╢ рдУрдПрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ "рдЕрдореВрд░реНрдд" рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ, рдЬрд┐рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рдХреЗ рдмрд╛рдж рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕реА рд╕рдордп, рдЯрд╛рдЗрдорд░ рдСрдкрд░реЗрд╢рди рдХреЛ QML рдХреЛрдб рдореЗрдВ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ C ++ рд╡рд░реНрдЧ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рд╣реИрдбрд░
 class TimerWrapper : public QObject { Q_OBJECT public: //    explicit TimerWrapper(QObject *parent = 0); ~TimerWrapper(); Q_INVOKABLE void start(int interval); //     Q_INVOKABLE void stop(); //     signals: void pomodoroFinished(int start, int end); //    void activeChanged(); //     private: QTimer *_timer; //   int _startTime; //    }; 


рд╕реНрд░реЛрдд
 #include "timerwrapper.h" /** *  . */ TimerWrapper::TimerWrapper(QObject *parent) : QObject(parent) { _timer = new QTimer(this); //    _timer->setSingleShot(true); //     //           connect(_timer, &QTimer::timeout, [=]() { emit activeChanged(); eemit pomodoroFinished(_startTime, QDateTime::currentDateTime().toMSecsSinceEpoch()); }); } /** *  . */ TimerWrapper::~TimerWrapper() { delete _timer; _timer = nullptr; } /** *     . * @:param: interval -      */ void TimerWrapper::start(int interval) { _startTime = QDateTime::currentMSecsSinceEpoch(); //    _timer->start(interval); //   emit activeChanged(); //      } /** *    . */ void TimerWrapper::stop() { _timer->stop(); //   emit activeChanged(); //     } 


рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреА рдПрдХ рд╡рд╕реНрддреБ QML рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

main.cpp
 #ifdef QT_QML_DEBUG #include <QtQuick> #endif #include <QGuiApplication> #include <QQmlContext> #include <QQuickView> #include <QScopedPointer> #include <sailfishapp.h> #include "timerwrapper.h" int main(int argc, char *argv[]) { //    QScopedPointer<QGuiApplication> application(SailfishApp::application(argc, argv)); //      QScopedPointer<QQuickView> view(SailfishApp::createView()); //    QScopedPointer<TimerWrapper> timer(new TimerWrapper(view.data())); //    view->rootContext()->setContextProperty("timer", timer.data()); //     QML- view->setSource(SailfishApp::pathTo("qml/harbour-application.qml")); //   view->show(); //   return application->exec(); } 


рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЬреИрд╕рд╛ рдХрд┐ рдкрд░рд┐рдЪрдп рдореЗрдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдЯрд╛рдЗрдорд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░реБрдХ рд╕рдХрддрд╛ рд╣реИред

рдирд┐рд░реНрдгрдп


рд╕реЛрддреЗ рд╕рдордп рдЯрд╛рдЗрдорд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡рд┐рдХрд▓реНрдк рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреА рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдХреБрдХрдЯрд┐рдореЗрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд░реВрдЯ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣рд╛рдБ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдЯрд╛рдЗрдорд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рдЬреЛ рдПрдХ рдорд┐рдирдЯ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдбреА-рдмрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЧрд┐рд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП req_display_cancel_blanking_pause ред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдЗрд╕ рддрд░рд╣ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЗрд╖реНрдЯрддрдо рдФрд░ рдмреЛрдЭрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдмреИрдЯрд░реА рддреЗрдЬреА рд╕реЗ рдЪрд▓рддреА рд╣реИред рджреВрд╕рд░реЗ, рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдПрдХ рдорд╛рдореВрд▓реА рдХреЛрдб рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЯрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдЖрдк рдорд╛рдзреНрдпрдорд┐рдХ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдмрдЪ рд╕рдХрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕реЗрд▓рдлрд╝рд┐рд╢ рдУрдПрд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рджреЛ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ: ScreenBlank рдФрд░ ScreenBlank рддрддреНрд╡ред

рдкрд╣рд▓реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдПрдХ рд▓рдЧрд╛рддрд╛рд░ рд╕рдХреНрд░рд┐рдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдЕрд░реНрде рд╣реИред рдпрд╣ рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓, рд▓реЗрдХрд┐рди рд╕реАрдзрд╛ рддрд░реАрдХрд╛ рд╣реИ, рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдмреИрдЯрд░реА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реАрдорд┐рдд рдкрд░рд┐рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВред

 import QtQuick 2.0 //       QML import Sailfish.Silica 1.0 //     Sailfish OS UI import Sailfish.Media 1.0 //      ScreenBlank ApplicationWindow //     { initialPage: Component { FirstPage { } } //     cover: Qt.resolvedUrl("cover/CoverPage.qml") //    ScreenBlank { //       id: screenBlank //    suspend: true //    } } 

рдмрджрд▓реЗ рдореЗрдВ, KeepAlive рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЕрдзрд┐рдХ рд▓реЛрдХрддрд╛рдВрддреНрд░рд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред рдХреБрдЫ рд╣рдж рддрдХ, рдпрд╣ рдмреИрдЯрд░реА рдмрд┐рдЬрд▓реА рдХреА рдЦрдкрдд рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рд╕реНрдХреНрд░реАрди рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЪрд╛рд▓реВ рдирд╣реАрдВ рд░рдЦрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рде рд╣реА, рдпрд╣ рдпрд╛ рддреЛ рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЧрд╣рд░реА рдиреАрдВрдж рдореЗрдВ рдЬрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдпрд╛ рд╕рдордп рдореЗрдВ рдЗрд╕реЗ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдкрд░ рдЬрд╛рдЧрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЯрд╛рдЗрдорд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХред

 import QtQuick 2.0 //       QML import Sailfish.Silica 1.0 //     Sailfish OS UI import org.nemomobile.keepalive 1.1 //      KeepAlive ApplicationWindow //     { initialPage: Component { FirstPage { } } //     cover: Qt.resolvedUrl("cover/CoverPage.qml") //    KeepAlive { //       id: keepAlive //    enabled: true //       } } 

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рд╕рднреА рддреАрди рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдВрдЪрд╛рд▓рди рдбреА-рдмрд╕ рдХреЗ рд╕рд┐рд╕реНрдЯрдо рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рдпрдорд┐рдд рдЕрдкреАрд▓ рд╣реИ, рдЬреЛ рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рдереАред

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдиреЛрдЯ рдореЗрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рдЧрд╣рд░реА рдиреАрдВрдж рд╕реЗ рдЧрд┐рд░рдиреЗ рд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рддреАрди рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдо рдпрд╣ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдкреГрд╖реНрдарднреВрдорд┐ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЯрд╛рдЗрдорд░) рдпрд╣ KeepAlive рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╖реНрдЯрддрдо рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ ScreenBlank ред

Source: https://habr.com/ru/post/hi413389/


All Articles