0

我是 PyQt 的新手,我必须开发一个使用它的应用程序。目前,我没有任何问题,但我遇到了一些问题。我必须创建一个“组合框,其项目可检查,如 CheckBox”。这个 ComboBox 应该包含许多图像格式,如“jpg”、“exr”或“tga”,我将不得不拿起选中选项的文本并将其放入变量中。问题是我找不到关于使用 ComboBox 使项目可检查的事情(如果你知道如何,它会很乐意帮助我!)

因为我不能用 ComboBox 来做,也许我可以用我认为的 QList 来做,但我也找不到像我这样的初学者可以理解的任何东西。我已经阅读了有关标志和“Qt.ItemIsUserCheckable”的内容,但我不知道如何以简单的方式使用它:(

你能帮助我吗 ?谢谢 !

PyQt 版本:4.4.3 Python 版本:2.6

4

1 回答 1

0

您可以使用模型-> 视图框架来执行此操作,但这意味着实现自定义模型以支持可检查数据。

您可以通过继承 QAbstractItemModel 来创建自定义模型。这为 QComboBox 提供了一个 API,用于访问底层数据。在我的脑海中,我认为您需要实现 flags 方法以指示您支持 ItemIsUserCheckable 用于您希望能够检查的索引。您还需要实现 data() 从基础数据报告数据状态,以及 setData() 接受来自 QComboBox 的输入并更改基础数据。

然后使用 setModel() 将其设置为 QComboBox 的模型。

这不是真正的初学者,但 Qt 中的模型-> 视图框架是它最重要和最有价值的特性之一,非常值得掌握。

于 2012-06-07T11:22:42.053 回答