PYQT5获取table表头
时间: 2023-07-27 13:05:56 浏览: 112
可以通过以下代码获取QTableWidget的表头名称:
```python
header = []
for i in range(tableWidget.columnCount()):
header.append(tableWidget.horizontalHeaderItem(i).text())
print(header)
```
其中,`tableWidget` 是你要获取表头的 QTableWidget 对象。这段代码将每一列的表头名称存储在 `header` 列表中,并输出该列表。
相关问题
pyqt5 qtableview 设置表头
在PyQt5中,可以使用QTableView来显示表格数据,并通过设置表头来定义列名。下面是一个示例代码,演示如何设置QTableView的表头:
```python
from PyQt5.QtWidgets import QApplication, QTableView, QVBoxLayout, QWidget
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QStandardItemModel, QStandardItem
app = QApplication([])
window = QWidget()
# 创建一个QTableView和一个数据模型
table_view = QTableView()
model = QStandardItemModel()
# 设置表头
header_labels = ['列1', '列2', '列3']
model.setHorizontalHeaderLabels(header_labels)
# 添加数据到模型
data = [['数据1', '数据2', '数据3'],
['数据4', '数据5', '数据6'],
['数据7', '数据8', '数据9']]
for row in range(len(data)):
for col in range(len(data[row])):
item = QStandardItem(data[row][col])
model.setItem(row, col, item)
# 将模型设置给QTableView
table_view.setModel(model)
# 设置表头可点击排序
table_view.setSortingEnabled(True)
# 设置表头自适应内容
table_view.horizontalHeader().setSectionResizeMode(QTableView.ResizeToContents)
# 设置表头不可编辑
table_view.setEditTriggers(QTableView.NoEditTriggers)
# 设置表头居中对齐
table_view.horizontalHeader().setDefaultAlignment(Qt.AlignCenter)
# 创建一个垂直布局,并将QTableView添加到布局中
layout = QVBoxLayout()
layout.addWidget(table_view)
# 将布局设置给窗口
window.setLayout(layout)
window.show()
app.exec_()
```
这段代码创建了一个带有表头的QTableView,并设置了表头的一些属性,如可排序、自适应内容、不可编辑和居中对齐。你可以根据自己的需求修改表头的内容和属性。
PyQt5 QTableWidget右键表头可以弹出菜单
可以通过继承QTableWidget类并重写mousePressEvent方法来实现右键菜单的弹出。
首先,创建一个新类并继承QTableWidget:
```python
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
```
然后,重写mousePressEvent方法:
```python
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
def mousePressEvent(self, event):
if event.button() == Qt.RightButton:
pos = event.pos()
if self.horizontalHeader().rect().contains(pos):
menu = QMenu(self)
menu.addAction("Action 1")
menu.addAction("Action 2")
menu.exec_(self.horizontalHeader().mapToGlobal(pos))
```
在mousePressEvent方法中,我们首先检查鼠标按下的是右键,然后检查鼠标的位置是否在水平表头内。如果是,我们创建一个QMenu并添加一些动作,然后在鼠标位置处显示菜单。
最后,我们需要将表格部件设置为我们新创建的表格类:
```python
table = MyTableWidget()
```
完整的示例代码:
```python
from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QMenu
from PyQt5.QtCore import Qt
class MyTableWidget(QTableWidget):
def __init__(self, parent=None):
super().__init__(parent)
def mousePressEvent(self, event):
if event.button() == Qt.RightButton:
pos = event.pos()
if self.horizontalHeader().rect().contains(pos):
menu = QMenu(self)
menu.addAction("Action 1")
menu.addAction("Action 2")
menu.exec_(self.horizontalHeader().mapToGlobal(pos))
class MainWindow(QMainWindow):
def __init__(self):
super().__init__()
table = MyTableWidget()
table.setRowCount(4)
table.setColumnCount(3)
self.setCentralWidget(table)
if __name__ == '__main__':
app = QApplication([])
window = MainWindow()
window.show()
app.exec_()
```
阅读全文