2

リピーターを使用して、メインの QML フォームに Rectangle 要素の 9:9 マトリックスがあります。私が実装したいのは、ユーザーが長方形の 1 つをクリックすると、Esc キーを押すとズームバックする TextEdit ウィジェットにズームすることです。

  1. QMLで可能ですか?
  2. はいの場合、Rectangle を TextEdit に変換し、この TextEdit をズームして親を埋めるにはどうすればよいですか?

QML を使い始めたばかりで、まだhttp://doc.qt.nokia.com/4.7-snapshot/qdeclarativeanimation.htmlから回答を得ることができません。

ありがとうございました。

4

2 に答える 2

2

1) 確かに!これは多かれ少なかれ QML の目的です。

2)これは、あなたが望むことを行う方法の例です(それを行う唯一の方法ではありません):

Rectangle {
  id: parentRect
  width: 500; height: 500

  // Every item in the grid should look like this
  Rectangle {
    id: singleItem
    color: "red"
    state: "closed"


    // Hidden text input, shown when user clicks
    TextInput {
      id: textInput
      anchors.fill: parent
      text: "Input here"
      cursorVisible: true
    }

    // MouseArea that will catch the user click
    MouseArea {
      anchors.fill: parent
      onClicked: singleItem.state = "open"
    }

    // Item states
    states: [
      State {
        name: "closed"
        PropertyChanges {target: singleItem; width: 25; height: 25}
        PropertyChanges {target: textInput; opacity: 0}
      },
      State {
        name: "open"
        PropertyChanges {target: singleItem; width: parentRect.width; height: parentRect.height}
        PropertyChanges {target: textInput; opacity: 1; focus: true}
      }
    ]

    // Transitions between states
    transitions: Transition {
      ParallelAnimation {
        NumberAnimation {
          target: singleItem
          properties: "width,height"
          duration: 1000
        }
        NumberAnimation {
          target: textInput
          property: "opacity"
          duration: 1000
        }
      }
    }
  }

}
于 2012-07-21T15:09:28.960 に答える
-1

私もqt-quickは初めてです。コードを作成しない限り、ズームすることはできないと思います。よくわかりませんが。:-)

この効果は優れており、今後のバージョンで見られるのはうれしいことです。コミュニティに機能リクエストを送信してみてください <3

于 2012-06-11T04:19:59.500 に答える