QMLã¯ãã³ã³ããŒãã³ããšåŒã°ããã³ãŒããç Žå£ãã䟿å©ãªæ¹æ³ãæäŸããŸãã åŸã§åå©çšã§ããã³ã³ããŒãã³ããäœæããæãç°¡åãªæ¹æ³ã¯ãã¡ã€ã³QMLãã¡ã€ã«ã®äœæ¥ãã£ã¬ã¯ããªã«æ°ãããã¡ã€ã«ãè¿œå ããããšã§ãã
Example.qmlïŒimport QtQuick 1.0 Rectangle { }
main.qmlïŒ import QtQuick 1.0 Example { }
ãŸããã³ã³ããŒãã³ãã¯ã¢ãžã¥ãŒã«ãšããŠããã±ãŒãžåã§ãïŒQtã³ã³ããŒãã³ãã¯ãã®ãããªã¢ãžã¥ãŒã«ã§ãïŒããã©ã°ã€ã³ãšããŠå
¬éã§ããŸãã ãã®æçš¿ã§ã¯ãã³ã³ããŒãã³ãã䜿çšããŠãã¯ãªãŒã³ã§ä¿å®ããããQMLã³ãŒããèšè¿°ããŸãã
æ°ããã³ã³ããŒãã³ãã®äœæ
æåã®äŸã¯ãè¿œå ã®ã³ã³ããŒãã³ããäœæããåçŽãã瀺ããã®ã§ããããã䜿çšããããšãæããªãã§ãã ããã
åå©çšå¯èœãªã³ãŒããäž»ãªç®æšã«ããªãã§ãã ããã å®è£
ã®è©³çŽ°ãã«ãã»ã«åããã³ã³ããŒãã³ãã®åé¢ãåæžããããåªããŸãã ã³ã³ããŒãã³ãã¯å°ãããªããã°ãªããŸããã ãããã®ã«ãŒã«ã«åŸããšãåŸã§åå©çšã§ããã³ãŒãã«èªåçã«å°éããŸãã
ãã®åçŽãªã¢ããã°æèšã®äŸãèŠãŠã¿ãŸãããã
ããŠã³ããŒãäŸ /
ãªã³ã©ã€ã³ã§èŠãmain.qmlïŒ import QtQuick 1.0
Clock.qmlïŒ import QtQuick 1.0
ãã®ã³ãŒãã«ã¯Clockã³ã³ããŒãã³ããå«ãŸããŠãããèµ·åæã«ä»¥äžã®ã¹ã¯ãªãŒã³ã·ã§ããã«ç€ºããããªã³ã³ããŒãã³ãã衚瀺ãããŸãã ã¢ããªã±ãŒã·ã§ã³ã§äžåºŠäœ¿çšããããšããäºå®ã«ãããããããã¡ã€ã³ãã¡ã€ã«ããéžæããããšã¯çã«ããªã£ãŠããŸãã

ãŸããmain.qmlãã¡ã€ã«ã«æ®ã£ãŠããããžãã¯ãã·ã³ãã«ãã€ç解ããããããŸããClockã³ã³ããŒãã³ãã®æéãåãç§ãæŽæ°ããã¿ã€ããŒã¯ãæ©èœãè¿œå ããå Žåã«main.qmlã§ç¢ºèªããå¿
èŠããããã¹ãŠã§ãã
第äºã«ãClockã³ã³ããŒãã³ãã¯ãŠã£ã³ããŠå
ã§ã®ç¬èªã®äœçœ®ã«ã€ããŠå¿é
ããããšã¯ã§ããŸããã Clockã³ã³ããŒãã³ããNå䜿çšããRowèŠçŽ ããããšããŸãã anchor.fillïŒèŠªã³ãŒããClockã³ã³ããŒãã³ãã®ã«ãŒãèŠçŽ ã«ãã£ãå ŽåãRowèŠçŽ ã§ãã®ã€ã³ã¹ã¿ã³ã¹ã䜿çšã§ããŸããã§ãããåClockã€ã³ã¹ã¿ã³ã¹ã¯ãwidth_row / Nã§ã¯ãªãwidth_rowå
šäœãå æããŸãããããQMLãã»ãšãã©ã®ã¢ã³ã«ãŒïŒã¢ã³ã«ãŒïŒRowèŠçŽ ã«é
眮ãããèŠçŽ å
ã Clockã³ã³ããŒãã³ããåå©çšå¯èœãªãŸãŸã«ããŠããããå Žåãå°æ¥ã®äœ¿çšã«ã€ããŠå€ãã®ä»®å®ãç«ãŠãã¹ãã§ã¯ãããŸããã èŠçŽãããšãã³ã³ããŒãã³ãã®ã«ãŒãèŠçŽ ã«ã¯ããã®èŠªãžã®ã¢ã³ã«ãŒãå«ããããå³å¯ã«å®çŸ©ãããã¬ã€ã¢ãŠããããŒãžã£ãŒã䜿çšãããããªãã§ãã ããã
åæã«ãClockã³ã³ããŒãã³ãã¯ãã®é·ããšå¹
ã«åºå®å€ãèšå®ããŸãã ã»ãã³ãã£ãã¯ã®èŠ³ç¹ããããããã¯ããã©ã«ãã§ã®ã³ã³ããŒãã³ãã®æ¬¡å
ã§ãã ã€ã³ã¹ã¿ã³ã¹ã®ãµã€ãºã¯å¿
èŠã«å¿ããŠå€æŽã§ãããããã³ã³ããŒãã³ãã®äœ¿çšã¯å¶éãããŸããã 寞æ³ããŒãã®ã³ã³ããŒãã³ãã¯äžå¯èŠèŠçŽ ãšèŠãªããããããããã©ã«ãã§å¯žæ³ããŒã以å€ã«èšå®ãããšãæããªãšã©ãŒãåé¿ãããŸãã
ãŸããæ§æèŠçŽ ã®äœæãå®è£
ã®è©³çŽ°ã®ã«ãã»ã«åãªã©ãããã»ã©æçœã§ã¯ãªãä»ã®çŸåŸ³ããããŸãã
åçŽãªèŠçŽ ElementAãElementBãããã³ElementCããè€åèŠçŽ ïŒComposedElementãšåŒã³ãŸãããïŒãäœæãããšãèŠçŽ ã«æ°ããããããã£ãšã¢ã¯ã·ã§ã³ãç°¡åã«è¿œå ã§ããŸãã ElementAãElementBããŸãã¯ElementCãå€æŽããããšãªããComposedElementã«æ°ããElementDããã³ElementEèŠçŽ ãè¿œå ã§ããŸãã ç§ãã¡ã®åçŽãªèŠçŽ ã¯äºãã«åé¢ãããŠãããããèŠçŽ ã®1ã€ãçªç¶å€æŽãããå Žåãåã«ç Žå£ããããšã¯ã§ããŸããã
ã³ã³ããŒãã³ãã¯ãC ++ããã³Javaã¯ã©ã¹ã§è¡ãããããã«ããããªãã¯éšåãšãã©ã€ããŒãéšåã«åå²ã§ããŸãã ã³ã³ããŒãã³ãã®ãããªãã¯APIã¯ãã«ãŒãèŠçŽ ïŒã³ã³ããŒãã³ãã«ãã£ãŠç¶æ¿ãããããããã£ãå«ãïŒã§å®çŸ©ããããã¹ãŠã®ããããã£ãšã¡ãœããã®åèšã§ãã ããã¯ããã®ãããªããããã£ãå€æŽã§ãããã®ãããªã¡ãœãããã³ã³ããŒãã³ãã®ãŠãŒã¶ãŒãåŒã³åºãããšãã§ããããšãæå³ããŸãã
ïŒã«ãŒãã§ã¯ãªãïŒãã¹ããããèŠçŽ ã§å®çŸ©ãããããããã£ãŸãã¯ã¡ãœããã¯ãå®å
šã«ãã©ã€ããŒããªAPIãšèŠãªãããšãã§ããŸãã ããã«ãããå®è£
ã®è©³çŽ°ãã«ãã»ã«åããããšãã§ããéçºè
ãã³ã³ããŒãã³ããäœæãããšãã«æçµçã«åœããåã«ãªãã¯ãã§ãã
ã«ãã»ã«åã®å©ç¹ã蚌æããããã«ãClock.qmlããå
éšèŠçŽ ãimplããåé€ããã¢ããªã±ãŒã·ã§ã³ãå床å®è¡ã§ããŸãïŒããšãã°ãã$ qmiviewer main.qmlãã䜿çšïŒã Clockãããªãã¯ã³ã³ããŒãã³ãAPIã¯å€æŽãããŠããªããããæ°ãããšã©ãŒã¯è¡šç€ºãããŸããã ããã¯ããimplããèªç±ã«å€æŽã§ããããšãæå³ãããã®ãããªå€æŽã«ãããµãŒãããŒãã£ã®åœ±é¿ãä»ã®ã³ã³ããŒãã³ãã«çŸããªãããšãç¥ã£ãŠããŸãã
ãã®ã¢ã€ãã¢ãæ¡åŒµããŠãClock.qmlã«ãimplãã®ä»»æã®èŠçŽ ãç¶æ³ã«å¿ããŠåçã«ããŒããããããšãã§ããŸãã ããã«ãããQMLã®ããªã¢ãŒãã£ãºã ã®æŠå¿µãå°å
¥ãããŸãã ãã®ãããªã¡ã«ããºã ã®å®è£
ã¯ãæŒç¿ãšããŠèªè
ã«ä»»ãããŠããŸãã
åã³ã³ããŒãã³ãã«é©åã«èšèšãããæå°éã®ãããªãã¯APIãããå Žåãç¹å®ã®å®è£
ã§ã¯ãªããã€ã³ã¿ãŒãã§ã€ã¹ã®éçºã«éäžã§ããŸãã
ã³ã³ããŒãã³ãã®åå©çš
Clock.qmlã³ã³ããŒãã³ããå®éã«åå©çšã§ãããã©ããã確èªããŸãã äžçæéã衚瀺ããæèšãäœæããã®ã«æé©ã§ãã ãã®å Žåããããã«ç§éã¯å¿
èŠãããŸããã Clock.qmlã®åäœããããã«å€æŽããŠãå€ããŒãæªæºã®å Žåã«åŸè
ãæéãåããŸãã¯ç§ã衚瀺ããªãããã«ããããšãã§ããŸãã id = thinhandã®ImageèŠçŽ ã®å Žåãvisibleããããã£ãç§æ°ã«é¢é£ä»ããããšãã§ããŸãã
visible: root.seconds > -1
ãããªãã¯APIã¯å€æŽããŸããã§ããã ãŸããã¢ããã°æèšã§ç§ã«è² ã®å€ã䜿çšããŠãæå³ããããŸããã ãããã£ãŠããã®å€æŽã¯Clockã³ã³ããŒãã³ãã䜿çšããæ¢åã®ã¢ããªã±ãŒã·ã§ã³ã®åäœã«åœ±é¿ãäžããªããšç¢ºä¿¡ããŠããŸãã
äžçæèšã®äŸã§ã¯ããšããããå°å
ã®å€©æ°æ
å ±ã衚瀺ã§ããŸãã å©çšå¯èœãªå€©æ°ãµãŒãã¹APIã®1ã€ãšXmlListModelã䜵çšãããšãAPIããããŒã¿ã宣èšçã«ååŸã§ããŸãã 以åã¯æèšã®æå»ãæŽæ°ããããã ãã«äœ¿çšãããŠããã¿ã€ããŒãã1æéã«1åæ°è±¡ããŒã¿ãæŽæ°ããããã«äœ¿çšãããããã«ãªããŸããã XmlListModelããŒã¿ãªãã¬ãã·ã¥é¢æ°ã«æ¥ç¶ãããªãã¬ãã·ã¥ä¿¡å·ã®å
¥åæ¹æ³ã«æ³šç®ããŠãã ããã
å€æŽãããäŸã§ã¯ã3ã€ã®éœåžã®äžçæèšãšçŸå°ã®å€©æ°æ
å ±ã衚瀺ãããŸãã

Clockã³ã³ããŒãã³ãã¯ç°¡åã«çµ±åã§ããŸãã ç§éããªãã«ããç¹å®ã®éœåžã®ãªãã»ãããšãšãã«æéå€ã«UTCã䜿çšããŸããã ããã¯ãClockãåçŽãªã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ãšããŠèšèšãããŠããããæ©èœããŸããã ã³ã³ããŒãã³ãå
ã«ã¿ã€ããŒãããå ŽåïŒã³ã³ããŒãã³ãã®ããããã£ãšããŠæéãåãç§ãå€æŽãã代ããã«ïŒãããã¯äœæ¥ãéåžžã«è€éã«ããŸãã æ®å¿µãªãããmain.qmlã®ãµã€ãºã¯å€§å¹
ã«å¢å ããŸããã RepeaterèŠçŽ ã¯ãutcOffsetsããã³citysé
åãšåæ§ã«ããããžã§ã¯ãã®è€éãã®äžå ãšãªããŸããã
ããŠã³ããŒãäŸ /
ãªã³ã©ã€ã³ã§èŠãmain.qmlïŒ Rectangle { ... property variant cities: ["Berlin", "Helsinki", "San Francisco"] property variant utcOffsets: [1, 2, -8] property variant now: new Date() signal refresh() Timer { ... property int hours onTriggered: { hours = root.now.getHours() root.now = new Date()
ç§ãã¡ã®ç®æšã¯ãmain.qmlãç解ããããããããšã§ãã åæã«ãClock.qmlãäžå¿
èŠã«è€éã«ããããªãã®ã¯ããã®å ŽåãåçŽãªã¢ããã°æèšãšããŠäœ¿çšããã®ãé£ããããã§ãã ãã®ãããæ°è±¡ããŒã¿ãšæèšã³ã³ããŒãã³ãã®åéã§æ§æãããæ°ããã³ã³ããŒãã³ããäœæããŸããã ã¿ã€ããŒãæŽæ°ããžãã¯ãXmlListModelãããã³ã¯ããã¯çµ±åãå«ãŸããŠããŸãã ããã§utcOffsetsãšcitysé
åãçŽæ¥èšå®ãã代ããã«ãWeatherWorldClockã³ã³ããŒãã³ãã®æ°ãããããªãã¯ããããã£ãè¿œå ããŸãã
ãããã®é
åãšRepeaterãmain.qmlããåé€ã§ããŸãã
ããŠã³ããŒãäŸ /
ãªã³ã©ã€ã³ã§èŠãmain.qmlïŒ import QtQuick 1.0
WeatherWorldClockã³ã³ããŒãã³ãã¯ãmain.qmlã®å€æŽããåé¢ãããŠããŸãã ä»»æã®ãã¡ã€ã«ã§ãã®ããããã£ãè£è¶³ããã³å€æŽã§ããäœããããŸããããªããªãå¿é
ã¯ãããŸããã WeatherWorldClockãè€éãããŠãµããŒãã§ããªãå Žåãããå€ãã®ã³ã³ããŒãã³ãã«åå²ã§ããŸãã ãã®ãããã¢ããªã±ãŒã·ã§ã³ã®ã¡ã€ã³ããžãã¯ãéåžžã«ã·ã³ãã«ã«èŠããããšãéåžžã«éèŠã§ããWeatherWorldClockã³ã³ããŒãã³ããåæåããéœåžãšãã®UTCãªãã»ãããæå®ããŸãã 以äžã§ãïŒ
ãããã«
ãã®èšäºã§ã¯ãã³ã³ããŒãã³ãã䜿çšãããªããžã§ã¯ãæåèšèšã®ããç¥ãããŠããååãé©çšããŠãéçºäžã®è€éãªãµã³ãã«ã®ã³ãŒãã®çŽåºŠãšäžè²«æ§ãç¶æããæ¹æ³ã瀺ããŸããã ããæç¹ã§ïŒäŸã«å€©æ°ã衚瀺ããæ©èœãè¿œå ãããšãïŒãã³ã³ããŒãã³ãã®ç£èŠãåæ¢ãããããã¢ããªã±ãŒã·ã§ã³ããžãã¯ã¯ããã«è€éã«ãªããŸããã ãã®ãããªç°¡åãªæ¹æ³ã§ãQMLã³ãŒãã®æž
æœããšé åºãç¶æããããšã¯é倧ãªä»äºã§ãããéçºè
ããã®èŠåŸãå¿
èŠã§ããããšãå®èšŒãããŸããã