Récupérer le contenu de TextInput dans une Grid
Bonjour,
je vais essayer de faire cours concernant mon pb, et je tiens à préciser que je ne suis pas très expérimenter en Qt/Qml.
Application : sudoku
IDE: Qt Creator
Plateforme: Symbian (emulator Qt)
Alors pour représenter le sudoku j'ai donc une grille de 9 x 9 rectangles contenant chacun un TextInput (limité a 1 charactere). Je ve donc pouvoir recupérer dans un container la totalité des TextInputs, pour ensuite lancer mon alog en cpp pour verifier le sudoku.
Il me faut donc un container dans lequel je mets tous les textinputs, et qu'il soit réutilisable dans du code cpp.
Voici mon fichier contenant la page du sudoku.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
import QtQuick 1.0
import "testjs.js" as JS
import com.nokia.symbian 1.0
Page
{
id:root
function slotRefresh() {box.width += 5; box.height += 5;}
Flickable
{
width: parent.width
height: parent.height
contentWidth: sudoGrid.width
contentHeight: sudoGrid.height
clip: true
Rectangle
{
id: sudoGrid
width: root.width
height: root.height * 2
anchors.centerIn: parent
color: "yellow"
Rectangle
{
id: top
width: root.width
height: root.height/5
radius: 10
gradient: Gradient
{
GradientStop {position: 0.0; color: "lightsteelblue"}
GradientStop {position: 1.0; color: "steelblue"}
}
Grid
{
anchors.top: top.bottom
anchors.topMargin: 20
anchors.horizontalCenter: parent.horizontalCenter
columns: 3
rows: 3
Repeater
{
model:9
Rectangle
{
id:casetoto
width: 35 * 3
height: 35 * 3
color: "green"
border.color: "red"
border.width: 3
Grid
{
anchors.fill: parent
columns: 3
rows: 3
Repeater
{
model: 9
Rectangle
{
id: box
width: 35
height: 35
color: "green"
border.color: "red"
border.width: 1
Rectangle {
id : background
anchors.centerIn : parent
width: 35
height: 35
color : "#CCCCCC";
opacity : 0.6
radius : 4
Text {
id: texteArriere
anchors.fill: parent
font.italic : true
font.pointSize : 9
color : "black" //couleur de texte
height :30
Behavior on opacity {NumberAnimation {duration: 200 }}
text: " ."
opacity: {zoneText.text == "" ? 1 : 0}
}
TextInput {
id: zoneText
anchors {left: parent.left; top: parent.top; topMargin: 1; leftMargin: 10;}
width: parent.width - 12
height: 30
font.pointSize : 9
maximumLength: 1
activeFocusOnPress: true
MouseArea {
anchors.fill: parent
onClicked: { zoneText.text= "";
if (!zoneText.activeFocus)
{
zoneText.forceActiveFocus()
zoneText.openSoftwareInputPanel();
}
else
{
zoneText.focus = false;
}
}
onPressAndHold: zoneText.closeSoftwareInputPanel();
}
}
}
}
}
}
}
}
}
}
}
}
} |