2017-03-03 46 views
1

我對QML有一些疑問。我有一個TableView,當我點擊一個列標題時,我需要打開一個新窗口,其中包含每個元素左側的按鈕下的該列下的所有元素。
點擊該按鈕應該發回一條消息到TableView進行更新。
我的問題是:
如何在2個qml窗口之間進行通信

  • 我怎樣才能搭上一列中的鼠標點擊?
  • 這將是第二個窗口的最佳解決方案:具有2列的tableview(一個用於按鈕,另一個用於元素)?在這種情況下,我不知道如何設置第一列的值...
  • 如何在2個qml窗口之間傳遞消息?從第一個窗口發送模型(列下的元素)和第二個窗戶我發回一個或多個值(取決於有多少按鈕選中)

    謝謝

回答

1

可以插圖中的QML多個窗口,只是以同樣的方式,傳達你的任何其他兩者之間的溝通Items通過引用它們或通過id s或將它們分配給您稍後用於引用它們的屬性。 考點:

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 
     } 
    } 
} 
相關問題