QTableView滚动文本
时间: 2023-09-15 10:20:03 浏览: 98
您可以使用QTableView的setWordWrap()方法来启用单元格中的文本自动换行。如果单元格中的文本太长而不适合单元格,则可以使用setHorizontalScrollMode()和setVerticalScrollMode()方法来启用水平和垂直滚动条。
以下是一个示例代码:
```
from PyQt5.QtWidgets import QApplication, QTableView, QStandardItemModel
from PyQt5.QtCore import Qt
app = QApplication([])
table = QTableView()
model = QStandardItemModel()
# 添加表头
model.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
table.setModel(model)
# 添加数据
for row in range(10):
item1 = QStandardItem('This is a very long text that needs to be wrapped')
item1.setFlags(Qt.ItemIsEnabled)
item1.setTextAlignment(Qt.AlignCenter)
item1.setWordWrap(True)
item2 = QStandardItem('Short text')
item2.setFlags(Qt.ItemIsEnabled)
item2.setTextAlignment(Qt.AlignCenter)
model.appendRow([item1, item2])
# 启用水平和垂直滚动条
table.setHorizontalScrollMode(QTableView.ScrollPerPixel)
table.setVerticalScrollMode(QTableView.ScrollPerPixel)
table.show()
app.exec_()
```
该代码将创建一个具有两个列的QTableView,并添加10行数据。第一列包含一个非常长的文本,该文本将自动换行。水平和垂直滚动条已启用,以便在需要时可以滚动表格。
阅读全文