pyside6中的tableview怎么让第一行和第一列还有第二列固定不动,不随滚动条移动
时间: 2024-03-16 14:40:56 浏览: 113
固定Table第一行或某几行不随滚动条滚动而滚动
在PySide6中,你可以使用QTableView来实现表格视图。如果你想让第一行和第一列还有第二列固定不动,不随滚动条移动,可以使用QHeaderView中的setSectionResizeMode()方法来设置。具体步骤如下:
1. 获取表格的水平和垂直滚动条。
```python
h_scrollbar = self.tableView.horizontalScrollBar()
v_scrollbar = self.tableView.verticalScrollBar()
```
2. 获取表格的水平和垂直头部视图。
```python
h_header = self.tableView.horizontalHeader()
v_header = self.tableView.verticalHeader()
```
3. 设置列头的第一列和第二列为固定大小。
```python
h_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
h_header.setSectionResizeMode(1, QtWidgets.QHeaderView.Fixed)
```
4. 设置行头的第一行为固定大小。
```python
v_header.setSectionResizeMode(0, QtWidgets.QHeaderView.Fixed)
```
5. 连接水平滚动条的valueChanged信号到表格的scrollTo()槽函数,用于使第一列和第二列始终可见。
```python
h_scrollbar.valueChanged.connect(lambda value: self.tableView.scrollToTopLeft())
```
6. 连接垂直滚动条的valueChanged信号到行头的scrollTo()槽函数,用于使第一行始终可见。
```python
v_scrollbar.valueChanged.connect(lambda value: v_header.scroll(0, value))
```
完成以上步骤后,第一行和第一列还有第二列就会固定不动,不随滚动条移动了。
阅读全文