2017-03-03 4 views
1

QMLに関するいくつかの質問があります。私はTableViewを持っていて、列見出しをクリックすると、各要素の左にあるボタンでその列の下のすべての要素を含む新しいウィンドウを開く必要があります。
このボタンをクリックすると、更新するためにTableViewにメッセージが送信されます。
私の質問は以下のとおりです。
2 qmlウィンドウ間の通信方法

  • 私は列にマウスクリックをキャッチすることができますどのように?
  • 2番目のウィンドウに最適なソリューションはどれですか:2つの列(ボタン用と要素用)を持つテーブルビューですか?この場合、第1列の値を設定する方法がわかりません...
  • 2つのqmlウィンドウ間でメッセージを渡すにはどうしたらいいですか?最初のウィンドウからモデル(列の下の要素)と2番目のウィンドウ窓は私が

    ありがとう(チェックされますどのように多くのボタンに応じて)戻って一つまたは複数の値を送信

答えて

1

あなたはQMLで複数のウィンドウ、ちょうど同じように、わたってるしき通信することができますが、他の2間の通信としてItemsidを介してそれらを参照するか、後でそれらを参照するために使用するプロパティにそれらを割り当ててください。 試験担当者:

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Layouts 1.0 

Item { 
    ApplicationWindow 
    { 
     id: appWindow 
     width: 500 
     height: 800 
     visible: true 

     ListModel { 
      id: lm 
      Component.onCompleted: { 
       for (var i = 0; i < 42; i++) append({ message: 'Hellow World ' + i }) 
      } 
     } 

     ListView { 
      id: lv 
      width: 300 
      height: 800 
      model: lm 
      delegate: Button { 
       text: model.message 
       onClicked: secondWindow.text = text 
      } 
     } 
    } 

    ApplicationWindow 
    { 
     id: secondWindow 
     width: 500 
     height: 800 
     x: appWindow.x + 500 
     y: appWindow.y 
     visible: true 
     property alias text: label.text 

     Text { 
      id: label 
      anchors.centerIn: parent 
     } 
    } 
} 
関連する問題