QT tabelview怎么固定一列表格无法操作
时间: 2024-03-19 09:44:47 浏览: 49
QT表格固定第一列,拖动时第一列不会遮挡
您可以通过设置QTableView中特定列的属性来禁用该列的编辑和选择操作,从而实现固定一列表格无法操作的效果。以下是一个示例代码:
```python
# 禁用第一列的编辑和选择操作
tableView = QTableView()
tableView.setEditTriggers(QAbstractItemView.NoEditTriggers)
tableView.setSelectionBehavior(QAbstractItemView.SelectRows)
tableView.setSelectionModel(QItemSelectionModel(tableView.model()))
tableView.setColumnWidth(0, 100)
tableView.setColumnWidth(1, 150)
tableView.setColumnWidth(2, 150)
tableView.setColumnWidth(3, 200)
tableView.verticalHeader().setVisible(False)
tableView.horizontalHeader().setVisible(True)
tableView.horizontalHeader().setStretchLastSection(True)
tableView.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
tableView.horizontalHeader().setSectionResizeMode(0, QHeaderView.Fixed)
tableView.horizontalHeader().setSectionResizeMode(1, QHeaderView.Fixed)
tableView.horizontalHeader().setSectionResizeMode(2, QHeaderView.Fixed)
tableView.horizontalHeader().setSectionResizeMode(3, QHeaderView.Fixed)
```
在这个例子中,我们设置了第一列的宽度为100,并将其设置为不可伸缩。这样,用户就无法改变第一列的大小。同时,我们将第二、三、四列设置为可伸缩,这样用户就可以通过拖动列边缘来调整它们的大小。然后,我们禁用了编辑和选择操作,使用户无法编辑或选择第一列的单元格。最后,我们隐藏了表格的垂直表头,并使水平表头可见,并将其设置为自动调整大小。
阅读全文