При нажатии кнопки увеличьте отображаемое число qt qml. - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь изменить отображаемое число при нажатии кнопки.Как мне это сделать?

Вот мой код QML

Button {
   id:button
   x:232
   y:250
   width:18
   height:18
   // Makes button have a transparent background
   palette {
   button: "transparent"
   }

   Image {
     anchors.fill: Button
     source:"Images/image.png"

     }
     // Moves rectangle down, on button click
     onClicked: rectangle.y-=10

     }

     Text{
      text: qsTr("12.0")
     }

Я хочу, чтобы число 12 увеличивалось при каждом нажатии кнопки

1 Ответ

0 голосов
/ 10 мая 2019

Вы должны объявить свойство типа int, видимое как для элементов текста, так и для кнопок.

Таким образом, пример кода может быть:

import QtQuick 2.0
import QtQuick.Controls 2.0

Window {
   id: rootWindow
   visible: true
   width: 300; height: 300

   property int displayValue: 12

   Text {
      id: displayTextId
      anchors.left: addOneButtonId.right

      text: displayValue.toString() //more clear if you explicit the parent rootWindow.displayValue.toString()
   }

   Button {
      id: addOneButtonId

      text: "Add 1"
      onClicked: {
         rootWindow.displayValue += 1
      }
   }
}

В качестве альтернативы, свойство может быть объявлено локальным для элемента Text (так определено внутри него), но обратите внимание, потому что свойство видимо только для его дочернего элемента.

Кстати, ваш код полон ошибок.Если вы хотите создать кнопку, которая содержит изображение и текст, лучше всего создать объект Rectangle и определить область мыши внутри него.

Структура кода должна быть такой:

Rectangle {
   id: root
   property int number: 12

   width: 100; height: 50
   color: "transparent"
   border.width: 1
   border.color: "black"

   Image { id: imageId }
   Text { id: textId; text: root.number.toString()  }

   MouseArea {
      anchors.fill: parent

      onClicked: {
         root.y += 10 // shift the y position down
         root.number += 1
      }
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...