Qt(或QtJambi)的绑定功能是否类似于WPF绑定?

时间:2012-03-21 21:19:48

标签: wpf qt binding qt-jambi

与Qt相比,谈到WPF绑定,是否有人试图通过以下方式实现WPF中的功能:

<ComboBox ItemsSource="{Binding Items}" SelectedValue="{Binding SelectedItem}" />

以下是:

  1. 项目集合(模型成员)绑定为组合下拉源。
  2. 然后组合选择绑定到SelectedItem(模型的成员)。
  3. 在Qt:

    1. QComboBox.setModel()可以相对容易地实现。
    2. 有点难,因为它是双向绑定。可以使用信号(QComboBox.activatedIndexChanged)完成视图到模型的更改。模型到视图的更改也可以通过信号完成(按照模型 - 视图分离,您需要向模型添加信号,在模型上更改SelectedItemIndex时发出它,并在Widget端连接到该信号以进行调用QComboBox.setCurrentIndex())。
    3. 所有这些似乎都是非常笼统的事情,可以在单独的绑定助手库中完成。例如,我现在在我的QtJambi代码中有这样的东西:

      ComboBoxBind bind = new ComboBoxBind(comboBox);
      bind.selectedIndex(model, "SelectedItemIndex").items(model.getItems());
      

      这里的QComboBox的currentIndex绑定到模型的SelectedItemIndex成员(具有相应的get / set方法)。所以我可以在模型上调用setSelectedItemIndex或在UI中更改选择 - 模型将与视图不同步。

      问题是:有人知道Binding库是否已经存在?有人试图创造类似的东西吗?

      对不起,可能是我错过了什么。我在WPF方面经验丰富,但刚刚开始使用Qt并开始使用QtJambi开发UI。欢迎任何意见/想法!

      这个问题与这个问题有关:Qt equivalent of .NET data binding?,但我认为问题没有得到回答。至少它没有在Qt中提供任何WPF类似的绑定样本。

0 个答案:

没有答案