Qt中有没有.NET数据绑定的等价物?
我想用引用数据库中特定实体的QStrings填充一些组合框和其他小部件。但是,如果我可以将数据绑定到这些字符串,而不是基于新的组合框选择再次查询数据库,或者基于构建我自己的实体索引(将使用QStrings进行搜索)的某种其他方案,将会更加简洁。
我想出的最好办法是从QString派生这些实体,并以这种方式将它们推送到小部件中,但我还没有真正尝试过。我不确定它是否会以我想要的方式工作,而且它看起来像是一个讨厌的黑客。
如果没有数据绑定,您有什么建议?
谢谢。
发布于 2009-11-09 23:53:14
嗯,特别是combobox,你可以设置一个模型。对于QObjects,通常可以使用notify信号表示要连接的属性,也可以使用其他与属性无关的信号。我想还有另一种方法,但我想不起来了。
发布于 2015-02-20 16:01:04
正如评论中提到的用户无动于衷,您可以使用QDataWidgetMapper
类。这是将任意小部件绑定到存储在QAbstractItemModel
中的数据的一种非常简单的方法。
链接页面上的示例用几行代码展示了如何将数据模型链接到常用的输入小部件:
QDataWidgetMapper *mapper = new QDataWidgetMapper;
mapper->setModel(model);
mapper->addMapping(mySpinBox, 0);
mapper->addMapping(myLineEdit, 1);
mapper->addMapping(myCountryChooser, 2);
mapper->toFirst();
发布于 2009-11-10 02:10:03
一种方法是使用Qt模型/视图类(以QAbstractItemModel为基础),但它们需要你的小部件继承QAbstractItemView (这是像QTableView等小部件)。
如果您希望将Qt模型映射到一组小部件,这与QAbstractItemView没有什么共同之处,您可以使用QDataWidgetMapper,它将单独的小部件映射到Qt模型/视图索引。但不管怎样,正如Aaron Digulla所说,你必须写一些样板代码...
https://stackoverflow.com/questions/1701706
复制相似问题