2016-08-31 10 views
0

itemDelegate.onClickに別のコマンドを追加します。私は私のイメージソースを変更するためのonClickedを使用して、私はmyText.textためmodelDataを使用したいQML- ui.qmlのonClickに別のコマンドを追加するにはどうすればよいですか?

ListView { 
     id: beam_viewer 
     x: 8 
     y: 18 
     width: 188 
     height: 374 
     delegate: ItemDelegate { 
      id: delegate_item 
      width: 180 
      height: 25 
      Text { 
       text: modelData 
       anchors.verticalCenter: parent.verticalCenter 
      } 
      onClicked: img_footprint.source = applicationPath + 
         "footprints/" + modelData + ".webp" 


     } 
    } 

は、ここに私のコードです。私はui.qmlを使用しており、javascriptを使用して拒否するため、onClickedの後に{}を使用することはできません。

どのようにしてonClicked myText.text = modelDataに追加できますか?

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

+0

私はあなたの例を実行することはできませんが、理由がわかりません。 AFAIK:すでにあなたの例では、JSを使用しています(=とは対照的に) {}で動作しない場合は、必要なものすべてを実行する関数を呼び出してみてください。 – derM

+0

'{}'はここからご覧いただけます。http://doc.qt.io/qt-5/qtqml-syntax-signals.html – Kirween

+0

「javascriptを使用して拒否する」とはどういう意味ですか?エラーとは何ですか? {}内にコマンドをグループ化することは問題ありません。実際のコードを投稿していない可能性があります。とにかく、[documentation](http://doc.qt.io/qt-5/qtqml-syntax-signals.html)を読んでください。 – folibis

答えて

0

Textアイテムとその他のものを含むItemDelegateのコンテンツなどのJavaScriptを使用するコードを、Qtクイックデザイナーが見ることができない独自の.QMLファイルに移動する必要があります。たとえば、次のように

MainForm.ui.qml

ListView { 
    id: beam_viewer 
    x: 8 
    y: 18 
    width: 188 
    height: 374 
    delegate: MyDelegate {} 
} 

MyDelegate.qml

ItemDelegate { 
    id: delegate_item 
    width: 180 
    height: 25 
    Text { 
     text: modelData 
     anchors.verticalCenter: parent.verticalCenter 
    } 
    onClicked: img_footprint.source = applicationPath + 
       "footprints/" + modelData + ".webp" 
} 

個人的に私はちょうどui.qmlファイルを使用することはありません。私はそれが非常に満足のいく答えではないことを知っていますが、それは私を遅らせるようです。

関連する問題