2017-03-03 741 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 
     } 
    } 
} 
相关问题