Sailfish OS ู…ุคู‚ุช ุชุดุบูŠู„ ุนู„ู‰ ูุชุฑุงุช ุทูˆูŠู„ุฉ

ู…ู‚ุฏู…ุฉ


ููŠ ูƒุซูŠุฑ ู…ู† ุงู„ุฃุญูŠุงู† ุŒ ุนู†ุฏ ุชู†ููŠุฐ ุฃูŠ ู…ู†ุทู‚ ููŠ ุงู„ุชุทุจูŠู‚ ุŒ ู‡ู†ุงูƒ ุญุงุฌุฉ ู„ุชุดุบูŠู„ ูˆุธูŠูุฉ ู…ุนูŠู†ุฉ ุจุนุฏ ูุชุฑุฉ ุฒู…ู†ูŠุฉ ู…ุนูŠู†ุฉ. ุฅู† ุฃูˆุถุญ ู…ุซุงู„ ุนู„ู‰ ู‡ุฐู‡ ุงู„ุญุงุฌุฉ ู‡ูˆ ุชุทุจูŠู‚ ู…ุคู‚ุช. ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ cooktimer ุฃูˆ Saildoro .

ูƒู…ุง ุฐูƒุฑ ููŠ ู…ู‚ุงู„ ุณุงุจู‚ ุŒ ู„ุฅุถุงูุฉ ู…ุคู‚ุช ุฅู„ู‰ ุชุทุจูŠู‚ ุนู„ู‰ ู†ุธุงู… ุชุดุบูŠู„ Sailfish ุŒ ูŠู…ูƒู†ูƒ ุงุณุชุฎุฏุงู… ุนู†ุตุฑ Timer ุงู„ู‚ูŠุงุณูŠ ุฃูˆ ู†ุธูŠุฑู‡ C ++ ุŒ QTimer . ูˆู…ุน ุฐู„ูƒ ุŒ ุจุดูƒู„ ุงูุชุฑุงุถูŠ ุŒ ูŠุชู… ุชุนู„ูŠู‚ ุชุดุบูŠู„ ู‡ุฐู‡ ุงู„ู…ุคู‚ุชุงุช ู„ูุชุฑุงุช ุทูˆูŠู„ุฉ ุจุณุจุจ ุญู‚ูŠู‚ุฉ ุฃู† ุงู„ุฌู‡ุงุฒ ู‚ุฏ ูŠู†ุงู…. ูˆุงุฌู‡ ู…ุทูˆุฑูˆ ุงู„ุชุทุจูŠู‚ูŠู† ุงู„ู…ุฐูƒูˆุฑูŠู† ุฃุนู„ุงู‡ ู‡ุฐู‡ ุงู„ู…ุดูƒู„ุฉ ู„ู„ุชูˆ.

ุชู‚ุฏู… ู‡ุฐู‡ ุงู„ู…ู‚ุงู„ุฉ ุทุฑูŠู‚ุฉ ู‚ูŠุงุณูŠุฉ ุŒ ูˆู„ูƒู† ู„ู„ุฃุณู ุบูŠุฑ ู…ูˆุซู‚ุฉ ู„ู„ุชุนุงู…ู„ ู…ุน ู‡ุฐุง ุงู„ุณู„ูˆูƒ ู„ู†ุธุงู… Sailfish OS.

ู†ู‚ุทุฉ ุงู„ุจุฏุงูŠุฉ


ูƒู†ู‚ุทุฉ ุงู†ุทู„ุงู‚ ุŒ ุณู†ู†ุธุฑ ููŠ ุชุทุจูŠู‚ "ุชุฌุฑูŠุฏูŠ" ู„ู†ุธุงู… Sailfish OS ุŒ ูˆุงู„ุฐูŠ ูŠุชุทู„ุจ ุชุดุบูŠู„ ุจุนุถ ุงู„ูˆุธุงุฆู ุจุนุฏ ูุชุฑุฉ ุฒู…ู†ูŠุฉ ุทูˆูŠู„ุฉ. ููŠ ู†ูุณ ุงู„ูˆู‚ุช ุŒ ู„ุง ูŠุชู… ูˆุตู ุนู…ู„ูŠุฉ ุงู„ู…ุคู‚ุช ููŠ ูƒูˆุฏ 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(); } 


ู…ุน ู‡ุฐุง ุงู„ู†ู‡ุฌ ุŒ ูƒู…ุง ู‡ูˆ ู…ุฐูƒูˆุฑ ููŠ ุงู„ู…ู‚ุฏู…ุฉ ุŒ ู‚ุฏ ูŠุชูˆู‚ู ุงู„ู…ุคู‚ุช ู…ุคู‚ุชู‹ุง ู„ูุชุฑุงุช ุทูˆูŠู„ุฉ ู…ู† ุงู„ุฒู…ู†.

ุงู„ุญู„


ุชู… ุงู‚ุชุฑุงุญ ุงู„ุฎูŠุงุฑ ุงู„ุฃูˆู„ ู„ู…ู†ุน ุงู„ู…ูˆู‚ุช ู…ู† ุงู„ู†ูˆู… ููŠ ุงู„ู‚ุงุฆู…ุฉ ุงู„ุจุฑูŠุฏูŠุฉ ู„ู„ู…ุทูˆุฑูŠู† ูˆุชุฃุตู„ ููŠ ุชุทุจูŠู‚ cooktimer. ูŠู‚ุชุฑุญ ู‡ู†ุง ุฅุนุฏุงุฏ ู…ุคู‚ุช ุฅุถุงููŠ ุจุดูƒู„ ุตุฑูŠุญ ุŒ ูˆุงู„ุฐูŠ ูŠุณุชุฏุนูŠ ู…ุฑุฉ ูˆุงุญุฏุฉ ููŠ ุงู„ุฏู‚ูŠู‚ุฉ ุทุฑูŠู‚ุฉ D-Bus req_display_cancel_blanking_pause ู„ู…ู†ุน ุงู„ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆู…. ู…ู† ุงู„ูˆุงุถุญ ุฃู† ู…ุซู„ ู‡ุฐุง ุงู„ุชู†ููŠุฐ ู„ูŠุณ ู…ุซุงู„ูŠุงู‹ ูˆู…ุฑู‡ู‚ุงู‹. ุฃูˆู„ุงู‹ ุŒ ุนู†ุฏ ุงุณุชุฎุฏุงู… ู‡ุฐุง ุงู„ู†ู‡ุฌ ุŒ ุชุนู…ู„ ุจุทุงุฑูŠุฉ ุงู„ุฌู‡ุงุฒ ุจุดูƒู„ ุฃุณุฑุน. ุซุงู†ูŠู‹ุง ุŒ ูŠุธู‡ุฑ ุฑู…ุฒ ุซุงู†ูˆูŠ ููŠ ุงู„ู…ุดุฑูˆุน ูŠู…ูƒู† ุชุฌู†ุจู‡.

ูˆูŠู…ูƒู†ูƒ ุชุฌู†ุจ ุงุณุชุฎุฏุงู… ุฑู…ุฒ ุซุงู†ูˆูŠ ู„ุฃู† Sailfish OS ูŠูˆูุฑ ุจุงู„ูุนู„ ุญู„ูŠู† ู…ู…ูƒู†ูŠู† ู„ู„ู…ุดูƒู„ุฉ: ุนู†ุงุตุฑ ScreenBlank ูˆ KeepAlive .

ูŠู†ุทูˆูŠ ุงุณุชุฎุฏุงู… ุงู„ู†ู‡ุฌ ุงู„ุฃูˆู„ ุนู„ู‰ ุดุงุดุฉ ู†ุดุทุฉ ุจุงุณุชู…ุฑุงุฑ. ู‡ุฐุง ู†ู‡ุฌ ุนู…ู„ูŠ ูˆู„ูƒู†ู‡ ู…ุจุงุดุฑ ุŒ ูŠุณุชู‡ู„ูƒ ุทุงู‚ุฉ ุจุทุงุฑูŠุฉ ุงู„ุฌู‡ุงุฒ ุจู†ุดุงุท. ูˆุจุงู„ุชุงู„ูŠ ุŒ ูŠู…ูƒู† ุงุณุชุฎุฏุงู…ู‡ ุŒ ูˆู„ูƒู† ููŠ ู…ุฌู…ูˆุนุฉ ู…ุญุฏูˆุฏุฉ ู…ู† ุงู„ู…ูˆุงู‚ู.

 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 //       } } 

ู…ู† ุงู„ุฌุฏูŠุฑ ุจุงู„ุฐูƒุฑ ุฃู†ู‡ ู…ู† ุญูŠุซ ุงู„ู…ุจุฏุฃ ุŒ ูุฅู† ุชุดุบูŠู„ ุฌู…ูŠุน ุงู„ุทุฑู‚ ุงู„ุซู„ุงุซุฉ ุงู„ู…ุฐูƒูˆุฑุฉ ู‡ูˆ ู†ุฏุงุก ู…ู†ุชุธู… ู„ุฃุณุงู„ูŠุจ ู†ุธุงู… D-Bus ุŒ ูˆุงู„ุชูŠ ุชู…ุช ู…ู†ุงู‚ุดุชู‡ุง ููŠ ุฅุญุฏู‰ ุงู„ู…ู‚ุงู„ุงุช ุงู„ุณุงุจู‚ุฉ .

ุงู„ุฎู„ุงุตุฉ


ููŠ ู‡ุฐู‡ ุงู„ู…ุฐูƒุฑุฉ ุงู„ู‚ุตูŠุฑุฉ ุŒ ุชู… ูˆุตู ุซู„ุงุซ ุทุฑู‚ ู…ู…ูƒู†ุฉ ู„ู…ู†ุน ุงู„ุฌู‡ุงุฒ ู…ู† ุงู„ู†ูˆู… ุจุนู…ู‚. ูŠู…ูƒู†ู†ุง ุฃู† ู†ุณุชู†ุชุฌ ุฃู†ู‡ ุจุงู„ู†ุณุจุฉ ู„ู…ู‡ุงู… ุงู„ุฎู„ููŠุฉ (ุนู„ู‰ ุณุจูŠู„ ุงู„ู…ุซุงู„ ุŒ ุฌู‡ุงุฒ ุถุจุท ุงู„ูˆู‚ุช) ุŒ ูู…ู† ุงู„ุฃูุถู„ ุงุณุชุฎุฏุงู… ุนู†ุตุฑ KeepAlive ุŒ ูˆุฅุฐุง ูƒุงู†ุช ู‡ู†ุงูƒ ุญุงุฌุฉ ู„ุนุฑุถ ุงู„ู…ุนู„ูˆู…ุงุช ุจุงุณุชู…ุฑุงุฑ ู„ู„ู…ุณุชุฎุฏู… ุŒ ูุฅู† ScreenBlank .

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


All Articles