但是数据的顺序倒过来了
时间: 2024-03-26 14:35:41 浏览: 11
是的,你是对的。在上面的示例代码中,我们使用了循环语句将单元格中的数据设置为居中对齐,但是在循环中使用了`model.item(row, column)`来获取QStandardItem对象,这样会导致行和列的顺序颠倒。为了解决这个问题,我们需要使用`model.index(row, column)`方法来获取QModelIndex对象,示例如下:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItem, QStandardItemModel
from PyQt5.QtWidgets import QApplication, QTableView
# 创建一个QStandardItemModel对象
model = QStandardItemModel()
# 添加数据到model中...
# 创建一个QTableView对象,并设置model
table_view = QTableView()
table_view.setModel(model)
# 遍历所有行和列,将单元格中的数据设置为居中对齐
for row in range(model.rowCount()):
for column in range(model.columnCount()):
index = model.index(row, column)
item = model.itemFromIndex(index)
if item is not None:
item.setTextAlignment(Qt.AlignCenter)
# 显示窗口
window = QApplication([])
table_view.show()
window.exec_()
```
在上面的示例代码中,我们使用`model.index(row, column)`方法获取QModelIndex对象,然后使用`model.itemFromIndex(index)`方法获取对应的QStandardItem对象。这样就可以保证行和列的顺序是正确的,程序就能正确地将单元格中的数据设置为居中对齐了。