QTableView如何设置居中显示
时间: 2023-12-29 08:12:40 浏览: 209
可以通过设置QHeaderView和QItemDelegate来实现QTableView中的内容居中显示。
设置QHeaderView居中显示:
```python
# 获取水平表头
header = tableView.horizontalHeader()
# 设置对齐方式为居中对齐
header.setDefaultAlignment(Qt.AlignCenter)
```
设置QItemDelegate居中显示:
```python
class CenterDelegate(QStyledItemDelegate):
def paint(self, painter, option, index):
option.displayAlignment = Qt.AlignCenter
QStyledItemDelegate.paint(self, painter, option, index)
# 创建表格
tableView = QTableView()
# 创建代理
delegate = CenterDelegate()
# 为表格设置代理
tableView.setItemDelegate(delegate)
```
以上两种方式都可以实现QTableView中的内容居中显示,可以根据实际需求选择其中一种方式来实现。
相关问题
设置QTableView中数据居中显示
要将QTableView中的数据居中显示,可以使用QTableView的setStyleSheet()方法设置样式表。通过样式表设置QTableView的单元格对齐方式,使数据居中显示。
```python
tableView = QTableView()
tableView.setStyleSheet("QTableView {"
"border: none;"
"font-size: 12px;"
"}"
"QTableView::item {"
"border-right: 1px solid #d6d6d6;"
"border-bottom: 1px solid #d6d6d6;"
"}"
"QTableView::item:selected {"
"background-color: #e7f3ff;"
"}"
"QTableView::item:!selected:hover {"
"background-color: #f5f5f5;"
"}"
"QTableView::item:selected:!active {"
"color: #000000;"
"}")
tableView.verticalHeader().setDefaultAlignment(Qt.AlignCenter) # 设置垂直居中对齐
tableView.horizontalHeader().setDefaultAlignment(Qt.AlignCenter) # 设置水平居中对齐
```
在样式表中,QTableView::item用于设置单元格的样式,QTableView::item:selected用于设置选中单元格的样式。使用`QTableView::item`和`QTableView::item:selected`分别设置单元格的样式和选中单元格的样式,可以制定QTableView的外观和样式。
qtableview居中显示
您可以使用setAlignment()函数来设置QTableView中每一列的对齐方式,以使其居中显示。以下是一个示例代码:
```python
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QApplication, QTableView, QStandardItemModel, QMainWindow
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
model = QStandardItemModel(4, 2)
model.setHorizontalHeaderLabels(['Column 1', 'Column 2'])
for row in range(4):
for column in range(2):
item = QStandardItem('Row %s, Column %s' % (row + 1, column + 1))
model.setItem(row, column, item)
table = QTableView()
table.setModel(model)
table.horizontalHeader().setSectionResizeMode(QHeaderView.Stretch)
table.verticalHeader().setSectionResizeMode(QHeaderView.Stretch)
table.setEditTriggers(QAbstractItemView.NoEditTriggers)
# 居中对齐
table.setAlignment(Qt.AlignCenter)
self.setCentralWidget(table)
self.show()
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
app.exec_()
```
在这个示例中,我们使用了setAlignment()函数将QTableView中的每一列都设置为居中对齐。您可以根据需要调整此设置,以满足您的特定要求。