QStringListmodel设置item不可编辑
时间: 2023-07-04 22:15:31 浏览: 73
如果你想让 QStringListModel 中的 item 不可编辑,你可以重新实现 QStringListModel 的 flags() 函数,并将返回值设置为 Qt::ItemIsSelectable | Qt::ItemIsEnabled。示例代码如下:
```python
class ReadOnlyStringListModel(QtCore.QStringListModel):
def flags(self, index):
return QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled
```
这将会创建一个 ReadOnlyStringListModel 类,该类继承自 QStringListModel。在该类中,我们重新实现了 flags() 函数,将返回值设置为 Qt::ItemIsSelectable | Qt::ItemIsEnabled。这样做可以确保 QStringListModel 中的 item 不可编辑。
接下来,你可以使用 ReadOnlyStringListModel 来为 QListView 提供数据,示例代码如下:
```python
model = ReadOnlyStringListModel()
model.setStringList(["Item 1", "Item 2", "Item 3"])
list_view.setModel(model)
```
这将会创建一个 ReadOnlyStringListModel 对象,并将一个字符串列表作为数据源设置到该 model 中。最后,将该 model 设置为 QListView 的数据源,这样就可以确保 QStringListModel 中的 item 不可编辑。