QMLã®ã¢ãã«ãã¥ãŒïŒ
- QMLã®ã¢ãã«ãã¥ãŒã ããŒããŒããå ¥é
- QMLã®ã¢ãã«ãã¥ãŒã ããŒã1ïŒäºåäœæãããã³ã³ããŒãã³ããã¥ãŒ
- QMLã®ã¢ãã«ãã¥ãŒã ããŒã2ïŒã«ã¹ã¿ã ãã¥ãŒ
- QMLã®ã¢ãã«ãã¥ãŒã ããŒã3ïŒQMLããã³JavaScriptã®ã¢ãã«
- QMLã®ã¢ãã«ãã¥ãŒã ããŒã4ïŒC ++ã¢ãã«
MVCã®è¡šçŸã¯ããŒã¿ãããã³ã°ãæäŸããŸãã ããã¯ãããŒã¿ã®è¡šç€ºæ¹æ³ãæçµçã«ã¯ãŠãŒã¶ãŒã«è¡šç€ºãããå 容ã決å®ããããã°ã©ã ã®äžéšã§ãã
Qtã§ã®ãã¥ãŒã®å®è£ ã«ã¯1ã€ã®éèŠãªæ©èœããããšæ¢ã«è¿°ã¹ãŸãããããã§ã®ãã¥ãŒã¯ã³ã³ãããŒã«ãšçµã¿åããããŠããŸãã ãªããããè¡ãããã®ã§ããïŒ ã°ã©ãã£ã«ã«ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãå€ãã®å ŽåãåãèŠçŽ ãããŒã¿ã®è¡šç€ºãšå€æŽãæ åœããŸãã äŸã¯ãããŒãã«ããã»ããµã§ãã åã»ã«ã¯ããŒã¿ã衚瀺ããã ãã§ãªãããã®å€æŽã«ã責任ãè² ããŸããã€ãŸãããã¬ãŒã³ããŒã·ã§ã³ã ãã§ãªãå¶åŸ¡ã®æ©èœãå®è¡ããŸãã ãããã£ãŠããããã1ã€ã®èŠçŽ ã«çµåãããšãã決å®ã¯éåžžã«è«ççã§ãã
ããã§ã¯ã2ã€ã®é¢æ°ã1ã€ã®èŠçŽ ã«çµåãããšãæè»æ§ã倱ããããã¬ãŒã³ããŒã·ã§ã³èªäœãããè€éã«ãªããšããèãã瀺ãããŠããŸãã ããã§ããªãã ããŒã¿ã®è¡šç€ºãã«ã¹ã¿ãã€ãºãããŠãŒã¶ãŒå ¥åãåŠçããå¯èœæ§ãæäŸããããã«ãããªã²ãŒãã®æŠå¿µãå°å ¥ãããŠããŸãã
ããªã²ãŒãã¯ãã¢ãã«ã®1ã€ã®èŠçŽ ã®ããŒã¿ã衚瀺ãããã®ç·šéãå¯èœã«ããã³ã³ããŒãã³ãã§ãã ããªã²ãŒãã€ã³ã¹ã¿ã³ã¹ã¯ãã¢ãã«ã®åèŠçŽ ã«å¯ŸããŠäœæãããåºæ¬çã«ã¯ã³ã³ããã§ãããã¥ãŒã«é 眮ãããŸãã ç¹å®ã®èŠçŽ ã®ããŒã¿ã衚瀺ããã³ç·šéããæ¹æ³ã決å®ããã®ã¯ããªã²ãŒãã§ãããããã«ããã«ã¹ã¿ãã€ãºã®å€§ããªæ©äŒãåŸãããŸãã ããŒãã«ããã»ããµã䜿çšããäžèšã®äŸã§ã¯ãã¹ãã³ããã¯ã¹ãŸãã¯ããããããŠã³ãªã¹ãã䜿çšããŠãåã»ã«ã®ããŒã¿ãç°¡åã«ç·šéã§ããŸãã
QMLã§ã¯ãããªã²ãŒãããã¹ãŠã®ã¢ãã«ã®ããŒã¿ãç·šéã§ããªãå¯èœæ§ãããããšãé€ããŠããã¹ãŠããŸã£ããåãã§ãïŒã¢ãã«ããŒã¿ãç·šéããå¯èœæ§ã¯ããã¥ã¡ã³ãã«ç€ºãããŠããŸããïŒã
èŠçŽãããšãQMLã®ãã¥ãŒã«ã¯3ã€ã®ã¿ã¹ã¯ããããŸãã
- ã¢ãã«å ã®åã¢ã€ãã ã®ããªã²ãŒãã€ã³ã¹ã¿ã³ã¹ãäœæãã
- å¿ èŠã«å¿ããŠãããã®èŠçŽ ãé 眮ããŸãã
- èŠçŽ éã®ããã²ãŒã·ã§ã³ãæäŸããŸãã
1.ãªã¹ããã¥ãŒ
ç§ã®æèŠã§ã¯ãå¿ èŠã§äººæ°ã®ããæŠå¿µããæŠå¿µãç¥ãå§ãããã®äžã§ãããã®ã³ã³ããŒãã³ãã®ã»ãšãã©ã«ç¹åŸŽçãªããã€ãã®äºæã詳ããèŠãŠãããŸãã
ãã®ã³ã³ããŒãã³ãã¯ããªããžã§ã¯ãããªã¹ãã«è¡šç€ºããæ©èœãæäŸããŸãã ããã²ãŒã·ã§ã³ã®åé¡ã解決ãããŸã-ã³ã³ããŒãã³ãã¯ããŠã¹ãšããŒããŒãããã®ã€ãã³ããåŠçããããŠã¹ãŸãã¯ã¿ããã¹ã¯ãªãŒã³ãããŠã¹ã¹ã¯ããŒã«ãããã³ããŒããŒãã䜿çšããŠããžã§ã¹ãã£ãŒã§èŠçŽ ãã¹ã¯ããŒã«ã§ããŸãã
1ïŒã·ã³ãã«ãªãŠãŒã¹ã±ãŒã¹
ListViewïŒããã³ä»ã®ã»ãšãã©ã®ãã¥ãŒïŒã«ã¯ãçŸåšã®ã¢ã€ãã ã®æŠå¿µããããŸãã çŸåšã®èŠçŽ ã¯currentIndexããããã£ã«ãã£ãŠæ±ºå®ãããçŸåšã®èŠçŽ èªäœã¯currentItemããããã£ãä»ããŠã¢ã¯ã»ã¹ã§ããŸãã ãŸããåããªã²ãŒãã«ã¯ListView.isCurrentItemããããã£ãæ·»ä»ãããŠããããã®èŠçŽ ãææ°ã®å Žåã«trueã«ãªããŸãã ããã«ãããçŸåšã®èŠçŽ ãéžæããŠãäœããã®åœ¢ã§è¡šç€ºãããããã«ããæ©äŒãäžããããŸãã
ããã«ãListViewèªäœãçŸåšã®ã¢ã€ãã ã匷調衚瀺ã§ããŸãã ãããè¡ãã«ã¯ã匷調衚瀺ããã³ã³ããŒãã³ããå¿ èŠã§ãã æãåçŽãªå Žåãè²ä»ãã®é·æ¹åœ¢ã«ãªããŸãã çŸåšã®ã¢ã€ãã ãå€æŽãããšãListViewã¯ãã€ã©ã€ãã移åããŸãïŒãã®åäœã¯ã«ã¹ã¿ãã€ãºã§ããŸãïŒã
ç°¡åãªäŸã§ããããã¹ãŠæ€èšããŠãã ããã
import QtQuick 2.0 Rectangle { width: 360 height: 360 ListModel { id: dataModel ListElement { color: "orange" text: "first" } ListElement { color: "lightgreen" text: "second" } ListElement { color: "orchid" text: "third" } ListElement { color: "tomato" text: "fourth" } } ListView { id: view anchors.margins: 10 anchors.fill: parent spacing: 10 model: dataModel clip: true highlight: Rectangle { color: "skyblue" } highlightFollowsCurrentItem: true delegate: Item { id: listDelegate property var view: ListView.view property var isCurrent: ListView.isCurrentItem width: view.width height: 40 Rectangle { anchors.margins: 5 anchors.fill: parent radius: height / 2 color: model.color border { color: "black" width: 1 } Text { anchors.centerIn: parent renderType: Text.NativeRendering text: "%1%2".arg(model.text).arg(isCurrent ? " *" : "") } MouseArea { anchors.fill: parent onClicked: view.currentIndex = model.index } } } } }
ããªã²ãŒãã§æ·»ä»ããããã£ListView.isCurrentItemã䜿çšããŠããã®ã¢ã€ãã ãçŸåšã®ãã®ã§ãããã©ãããå€æããçŸåšã®ã¢ã€ãã ã®ããã¹ãã«å ããŠã¢ã¹ã¿ãªã¹ã¯ïŒ*ïŒã衚瀺ããŸãã èŠçŽ ãã¯ãªãã¯ããããšã§ãããèªäœãææ°ã«èšå®ã§ããããã«ãListViewãªããžã§ã¯ãã«ã¢ã¯ã»ã¹ããå¿ èŠããããListView.viewããããã£ã䜿çšããŠååŸããŸãã ããã§ã¯ããã®ããããã£ã¯ãã¢ã³ã¹ãã¬ãŒã·ã§ã³ã«äœ¿çšãããŸããã䜿çšããå¿ èŠã¯ãªãããã®ãªããžã§ã¯ãã«çŽæ¥ã¢ã¯ã»ã¹ã§ããŸãã ãã®ãªããžã§ã¯ãã¯æ¢ã«ããªã²ãŒãã®ã¹ã³ãŒãå ã«ãããŸãã ãã ããããªã²ãŒããå¥ã®qml-fileã§å®çŸ©ãããŠããå ŽåãListViewãªããžã§ã¯ãã¯ããªã²ãŒãã®ã¹ã³ãŒãå ã«å«ãŸããªããªãããã®ããããã£ã«ã¢ã¯ã»ã¹ã§ããŸãã
ããã¯ã©ã€ããšããŠãåçŽãªè²ä»ãã®é·æ¹åœ¢ã䜿çšãããŸãã ãã®ãµã€ãºã¯ListViewã«ãã£ãŠèšå®ãããããèªäœãçŸåšã®ã¢ã€ãã ã®åŸãã«ç§»åããŸãã
ããã°ã©ã ãèµ·åããããšã§ãããŠã¹ã¯ãªãã¯ã§çŸåšã®èŠçŽ ãå€æŽããããã¯ã©ã€ãããã®èåŸã§ã©ã®ããã«ç§»åãããã確èªã§ããŸãã
ããªã²ãŒãã®æ·»ä»ããããã£ã®å¯èŠæ§ã«é¢ãããã1ã€ã®éèŠãªãã€ã³ãã ã¢ãã«ããŒã¿ãšã¯ç°ãªããæ·»ä»ããããã£ã¯ããªã²ãŒãèªäœã§ã®ã¿æå¹ã§ããããã®åãªããžã§ã¯ãã§ã¯æå¹ã§ã¯ãããŸããã ã€ãŸã TextèŠçŽ ã§ListView.isCurrentItemã䜿çšããããšã¯ã§ããŸããã ãã®æ©èœã¯ãæ·»ä»ããããã£èªäœããªããžã§ã¯ãã«è¡šç€ºããããããã«ã¢ã¯ã»ã¹ãããšãã«ãšã©ãŒãçºçããªãããšãèãããšãæããã§ã¯ãªãå ŽåããããŸãã ããšãã°ãMouseAreaã®ã¯ãªãã¯ã®ãã³ãã©ãŒã次ã®ããã«çœ®ãæããããšãã§ããŸãã
onClicked: console.log(ListView.isCurrentItem)
ãããŠãçŸåšã®èŠçŽ ã§ãã£ãŠãããã¹ãŠã®èŠçŽ ã§åœãçæããŸãã
ããªã²ãŒãã®åèŠçŽ ããã¢ã¯ã»ã¹ããã«ã¯ãIDãä»ããŠããªã²ãŒãã®ã¹ã³ãŒããæ瀺çã«æå®ããå¿ èŠããããŸãã listDelegate.ListView.isCurrentItemã䜿çšããããisCurrentããããã£ã䜿çšããäŸã§è¡ãããŠããããã«ãããã«äžéããããã£ã䜿çšããŸãã
æåã®æ¹æ³ã¯ãè¿œå ã®ããããã£ãäœæãããªããšããç¹ã§åªããŠããŸãã ããªã²ãŒãã®å®è£ ãå¥ã®QMLãã¡ã€ã«ã«ç§»åããå Žåã¯ã2çªç®ã®æ¹æ³ã䜿çšããå¿ èŠããããŸãã ããšãã°ãListDelegate.qmlãã¡ã€ã«ã«é 眮ãããšã次ã®ã³ãŒããèšè¿°ã§ããŸãã
ListView { delegate: ListDelegate { isCurrent: ListView.isCurrentItem } }
ããã«ãããããªã²ãŒãã³ãŒããå€æŽããã«ãããªã²ãŒãã®å®è£ ãListViewã«ãã€ã³ãããŠè¡šç€ºãå€æŽããããšã¯ã§ããŸããïŒããšãã°ãRepeater + ColumnïŒã
ListViewã§ã¯ããã¹ãŠã®èŠçŽ ã®æåãšæåŸã«è¡šç€ºãããè¿œå ã®èŠçŽ ãæå®ã§ããŸãã ãããè¡ãã«ã¯ãããããŒãšããã¿ãŒã®ããããã£ã䜿çšããŸãã åã®äŸã次ã®èŠçŽ ã§è£è¶³ããŸãã
header: Rectangle { width: view.width height: 40 border { color: "black" width: 1 } Text { anchors.centerIn: parent renderType: Text.NativeRendering text: "Header" } } footer: Rectangle { width: view.width height: 40 border { color: "black" width: 1 } Text { anchors.centerIn: parent renderType: Text.NativeRendering text: "Footer" } }
ãã®çµæã次ã®ãããªçµæãåŸãããŸãã
2ïŒã»ã¯ã·ã§ã³
ListViewã§ã¯ãã¢ã€ãã ãã°ã«ãŒãã«åå²ããåã°ã«ãŒãã«ç¬èªã®ã¿ã€ãã«ãä»ããããšãã§ããŸãã ãããè¡ãã«ã¯ãã¢ãã«ããã©ã®ããŒã«ãã°ã«ãŒããžã®åå²ã«äœ¿çšããããéžæãããããã®ã°ã«ãŒãã®èŠåºãã®ããªã²ãŒããå®çŸ©ããŸãã
次ã®äŸã§ãããèæ ®ããŠãã ããã
import QtQuick 2.0 Rectangle { width: 360 height: 360 ListModel { id: dataModel ListElement { type: "bird" text: "penguin" } ListElement { type: "bird" text: "raven" } ListElement { type: "reptile" text: "lizard" } ListElement { type: "reptile" text: "turtle" } ListElement { type: "reptile" text: "crocodile" } } ListView { id: view anchors.margins: 10 anchors.fill: parent spacing: 10 model: dataModel clip: true section.property: "type" section.delegate: Rectangle { width: view.width height: 40 color: "lightgreen" Text { anchors.centerIn: parent renderType: Text.NativeRendering font.bold: true text: section } } delegate: Rectangle { width: view.width height: 40 border { color: "black" width: 1 } Text { anchors.centerIn: parent renderType: Text.NativeRendering text: model.text } } } }
ã°ã«ãŒãåã®ã¿ã€ããã£ãŒã«ããæå®ããŸãã ãããã£ãŠããã®ãã£ãŒã«ãã®åãå€ãæã€ãã¹ãŠã®èŠçŽ ã1ã€ã®ã°ã«ãŒãã«çµåãããŸãã ã°ã«ãŒãããæåã®æåãäžèŽããèŠçŽ ïŒã¢ãã¬ã¹åž³ãªã©ïŒãçµåããããšã確èªã§ããŸãã ãããè¡ãã«ã¯ãsection.criteriaããããã£ãViewSection.FirstCharacterã«èšå®ããå¿ èŠããããŸãã
ããã°ã©ã ãå®è¡ãããšã次ã®çµæãåŸãããŸãã
3ïŒããã©ãŒãã³ã¹ã«ã€ããŠ
ListViewã¯ãã¢ãã«ã®ãã¹ãŠã®èŠçŽ ã®ããªã²ãŒãã€ã³ã¹ã¿ã³ã¹ãäœæããã®ã§ã¯ãªãã衚瀺ãããŠããèŠçŽ ã®ã¿ãäœæããããšã«æ³šæããŠãã ããã 衚瀺éšåã移åãããšãïŒã€ãŸããã¹ã¯ããŒã«ãããšãïŒãListViewã¯ãããããã®å Žã§äœæããŸãããããã¯è¡šç€ºé åã«èœã¡ããã®é åããæ¶ãããšãã«åé€ãããŸãã ãããã£ãŠãããªã²ãŒãã¯ã§ããã ã軜ãããå¿ èŠããããŸããããããªããšãã¹ã¯ããŒã«èŠçŽ ãé ããªããŸãã
ListViewã¯ãçŸåšè¡šç€ºãããŠããé åã ãã§ãªããããçšåºŠã®äœè£ãæã£ãŠé ç®ãäœæã§ããŸãã ãã®é åã®ãªããžã§ã¯ãã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã®æäœã劚ããªãããã«éåæã«äœæãããŸãã ãããã£ãŠããã®ãããªèŠçŽ ãå€ããã°å€ãã»ã©ãã¹ã¯ããŒã«ã©ã°ã¯å°ãªããªããŸãããã¡ã¢ãªæ¶è²»ãå¢å ããŸãã ãã®ãããªèŠçŽ ã®æ°ã¯ãç¹å¥ãªãã©ã¡ãŒã¿ãŒcacheBufferã«ãã£ãŠå¶åŸ¡ãããŸãã ãªããžã§ã¯ããäœæãããå¯èŠéšåã®å¢çãè¶ ããé åã®ãµã€ãºããã¯ã»ã«åäœã§æ±ºå®ããŸãã è¿œå ã®ãªããžã§ã¯ããããã€äœæãããããç解ããã«ã¯ããã®å€ãé«ãïŒãŸãã¯ListViewãæ°Žå¹³é 眮ã®å Žåã¯å¹ ïŒã§é€ç®ãããã®å€ã2ã€ããããããã®å€ã2åããå¿ èŠããããŸãã
Qtã®5çªç®ã®ããŒãžã§ã³ã§ãã°ããäœæ¥ããåŸããªããšãããŠ4çªç®ã®ããŒãžã§ã³ã§ãããžã§ã¯ããçµã¿ç«ãŠãŠç«ã¡äžããŸããã ãããŠãã¹ã¯ããŒã«èŠçŽ ãå€§å¹ ã«é ããŠããããšã«æ°ä»ããŸããã å°ãæãäžããŠã¿ããšãQt 5.0ã§ã¯cacheBufferãããã©ã«ãã§320ã«èšå®ãããŠãããQt 4.8ã§ã¯0ã«èšå®ãããŠããŸãããã£ãã·ã¥ã®ãµã€ãºã倧ãããããšãã¹ã¯ããŒã«ãèããã¹ã ãŒãºã«ãªããŸãã ããããããã¯ããã«é¡èã§ããã5çªç®ã®ããŒãžã§ã³ã§ã¯ã圌ãã¯å éã®è¯ãä»äºãããŸãã-4çªç®ã®ããŒãžã§ã³ãšæ¯èŒããŠãéãã¯èçŒã§èŠãããšãã§ããŸãã
ããã©ã«ãã®ãããã¡ãµã€ãºã¯ãã©ãããã©ãŒã ããšã«ç°ãªãå¯èœæ§ããããããããã§ç€ºããæ°å€ã«é Œãã®ã§ã¯ãªããäŸãšããŠæããã ãã§ãã
äžèšã«åºã¥ããŠãããã©ãŒãã³ã¹ã«é¢ããŠ2ã€ã®çµè«ãåºãããšãã§ããŸãã
- ãã€ã³ãã£ã³ã°ã®æå°æ°ã§ãæã軜éã®ããªã²ãŒããäœæããå¿ èŠããããŸãïŒç¹ã«ãã€ã³ãã£ã³ã°ã®è€éãªJavaScriptåŒã®å ŽåïŒã
- ã¹ã¯ããŒã«ã«åé¡ãããå Žåã¯ããããã¡ã®ãµã€ãºãè©ŠããŠã¿ã䟡å€ããããŸãã
2. GridView
ãã®ã³ã³ããŒãã³ãã¯ListViewã«äŒŒãŠããŸãããã¢ã€ãã ãã°ãªããã«é 眮ã§ããŸãã ã°ãªããã¯ãå·Šããå³ã«1è¡ãã€åããããŸãïŒããã©ã«ãïŒã ãããã£ãŠãèŠçŽ ãå°ãªãå ŽåãæåŸã«ç©ºã®ã¹ããŒã¹ããããŸãã
GridViewã䜿çšããããã®ãããã«é©åããæåã®äŸïŒ
import QtQuick 2.0 Rectangle { width: 360 height: 360 ListModel { id: dataModel ListElement { color: "orange" text: "first" } ListElement { color: "lightgreen" text: "second" } ListElement { color: "orchid" text: "third" } ListElement { color: "tomato" text: "fourth" } } GridView { id: view anchors.margins: 10 anchors.fill: parent cellHeight: 100 cellWidth: cellHeight model: dataModel clip: true highlight: Rectangle { color: "skyblue" } delegate: Item { property var view: GridView.view property var isCurrent: GridView.isCurrentItem height: view.cellHeight width: view.cellWidth Rectangle { anchors.margins: 5 anchors.fill: parent color: model.color border { color: "black" width: 1 } Text { anchors.centerIn: parent renderType: Text.NativeRendering text: "%1%2".arg(model.text).arg(isCurrent ? " *" : "") } MouseArea { anchors.fill: parent onClicked: view.currentIndex = model.index } } } } }
ListViewãšã¯ç°ãªããã¹ããŒã·ã³ã°ããããã£ã¯ãããŸããã 代ããã«ãcellHeightãšcellWidthã䜿çšããŠã»ã«ãµã€ãºãèšå®ããŸãã èŠçŽ ãã»ã«ããå°ããå Žåãã€ã³ãã³ãããããŸãã ãã£ãš-圌ãã¯ãäºãã«ãã£ããããŸã:)
ããã°ã©ã ã®çµæïŒ
ã°ãªããã䜿çšããŠèŠçŽ ãé 眮ããå¯èœæ§ãšã¹ããŒã¹ããªãããšã«å ããŠããã®ã³ã³ããŒãã³ãã«ã¯ãªã¹ããã¥ãŒãšã¯å¥ã®éãããããŸããã»ã¯ã·ã§ã³ã¯ãããŸããã ãã以å€ã®å ŽåãListViewã«ã€ããŠè¿°ã¹ãããšã¯ãã¹ãŠGridViewã«åœãŠã¯ãŸããŸãã
3. TableView
äžéšã®ããŒã¿ã¯ãããŒãã«ã«æã䟿å©ã«è¡šç€ºãããŸãã ãããè¡ãããã«ãQtã¯QTableViewã¯ã©ã¹ã䜿çšããŸãã QMLã§ã¯ãQtQuick Controlsã¢ãžã¥ãŒã«ã®ç»å Žã«ãããããŒã¿ã®ããŒãã«ãã¥ãŒãäœæããããã®æ¢è£œã®ã³ã³ããŒãã³ããç»å ŽããŸããã
ã¢ãã«ã¯ãŸã ãªã¹ãã®åœ¢åŒã§ããå¿ èŠãããããšãããã«èšããªããã°ãªããŸããã 1ã€ã®ã¢ãã«èŠçŽ ã¯ããŒãã«è¡ã«å¯Ÿå¿ããåã®ããŒã¿ã¯èŠçŽ ã®ããŒã«ããååŸãããŸãã ããã§å®éã®C ++ããŒãã«ã¢ãã«ãæž¡ããŸãã QAbstractTableModelãã掟çããã¯ã©ã¹ã¯å€±æããŸã-æåã®åã®ã¿ã衚瀺ãããŸãã
TableViewãªããžã§ã¯ãã®å®çŸ©ã§ã¯ãååã«ã©ã®åã䜿çšããã¢ãã«ããŒã¿ã®ã©ã®ããŒã«ã䜿çšããããæå®ããŸãã
äŸãèããŠã¿ãŸãããã
import QtQuick 2.0 import QtQuick.Controls 1.0 Rectangle { width: 360 height: 360 ListModel { id: dataModel ListElement { color: "orange" text: "first" } ListElement { color: "lightgreen" text: "second" } ListElement { color: "orchid" text: "third" } ListElement { color: "tomato" text: "fourth" } } TableView { id: view anchors.margins: 10 anchors.fill: parent model: dataModel clip: true TableViewColumn { width: 100 title: "Color" role: "color" } TableViewColumn { width: 100 title: "Text" role: "text" } itemDelegate: Item { Text { anchors.centerIn: parent renderType: Text.NativeRendering text: styleData.value } } } }
ããªã²ãŒãã®ã¢ãã«ããŒã¿ã«é¢ãã1ã€ã®éèŠãªæ©èœã QtQuick Controlsã®ã³ã³ããŒãã³ãã®å€èŠ³ã¯QtQuick Controls Stylesã®ã¹ã¿ã€ã«ã䜿çšããŠèšå®ãããããã©ã«ãã®ã¹ã¿ã€ã«ã¯ã³ã³ããŒãã³ããçŸåšã®ãã©ãããã©ãŒã ã«ãã€ãã£ãã«èŠããããã«ããããã«äœ¿çšãããŸãã æ¬è³ªçã«ããããã®ã³ã³ããŒãã³ãã¯ã¢ãã«ãšè¡šçŸãçµã¿åãããã¹ã¿ã€ã«ã¯ããªã²ãŒãã§ãã ã¹ã¿ã€ã«ã¢ãã«ã®ããŒã¿ã¯ãstyleDataããããã£ã䜿çšããŠå©çšã§ããŸãã TableViewã§ã¯ãããªã²ãŒãã¯ã¹ã¿ã€ã«ã§åæ§ã®æ¹æ³ã§äœ¿çšããããã®ããŒã¿ã¯styleDataãªããžã§ã¯ããä»ããŠã¢ã¯ã»ã¹ã§ããŸãã
ãã®çµæã次ã®è¡šãåŸãããŸãã
ãã®äŸã§ã¯ãããŒãã«å ã®ãã¹ãŠã®ã»ã«ã®ããªã²ãŒããèšå®ããitemDelegateããããã£ã䜿çšããŠããŸãã äžéšã®åã§ããŒã¿ãå°ãç°ãªã£ãŠè¡šç€ºããå¿ èŠãããå Žåã¯ã©ãããã°ããã§ããïŒ ãã®ç¹å®ã®åãTableViewColumnã§å®çŸ©ãããŠããå Žåãããªã²ãŒããèšå®ã§ããŸãã ããšãã°ãæåã®åã§ã¯ãè²ãããã¹ãã§è¡šç€ºãããŸãã 代ããã«ããã®è²ã§ã»ã«ãå¡ããŸãããã
TableViewColumn { width: 100 title: "Color" role: "color" delegate: Rectangle { color: styleData.value } }
ãã®çµæãè²ä»ãã®ã»ã«ãåŸãããŸãã
è¡å šäœã«å¯ŸããŠãããªã²ãŒãïŒrowDelegateããããã£ïŒããããŸãã ããã«ãããåã®é«ããèæ¯è²ãªã©ãã«ã¹ã¿ãã€ãºã§ããŸãã
TableViewã䜿çšãããšãçŽç²ãªQMLã§ããŒãã«ãäœæãããã€ãã£ãã®ããã«è¡šç€ºããããšãã§ããŸãããåæã«å€èŠ³ãæè»ã«ã«ã¹ã¿ãã€ãºã§ããŸãã ãã®ãããªã³ã³ããŒãã³ãã¯ãQMLã€ã³ã¿ãŒãã§ã€ã¹ãåãããã¹ã¯ãããããã°ã©ã ãäœæããã®ã«éåžžã«åœ¹ç«ã¡ãŸãã ãããããã¹ã¯ãããã³ã³ããŒãã³ãã®ããã«èŠããæ©èœã«ãããããããTableViewã¯çŽç²ãªããŒãã«ã¢ãã«ã§ã¯æ©èœããããªã¹ãã«è¡šç€ºãããŠããããŒã¿ã®ã¿ãåŠçã§ããŸãã
çµè«
äž»ã«è¡šçŸã®å®è£ ã«çŠç¹ãåãããQMLã«ã¯åŒ·åãªæ©èœããããŸãããåæã«ãã®ããã®éåžžã«ã·ã³ãã«ãªããŒã«ããããŸãã æšæºã³ã³ããŒãã³ãã®äžã«ã¯ãäœæ¥ã®å€§éšåãå ããæ¢è£œã®ãã¥ãŒãããããŠãŒã¶ãŒã¯ã¢ãã«ãšããªã²ãŒãã®ã¿ãæäŸã§ããŸãã
å€ãã®ãã¥ãŒã®ããªã²ãŒãã®ã€ã³ã¹ã¿ã³ã¹ã¯ããã®å Žã§äœæããã³åé€ããããããããã©ãŒãã³ã¹ãåäžãããããã«å¿ããŠã¢ãã¡ãŒã·ã§ã³ãã¹ã ãŒãºã«ããã«ã¯ãã§ããã ãç°¡åã«ããããã«ããŠãã ããã