默认的代理是不显示按钮,需要双击单元格后才显示。
from PySide6.QtWidgets import QApplication, QTableView, QPushButton, QStyledItemDelegate, QSizePolicy, QStyleOptionViewItem
from PySide6.QtCore import Qt, QModelIndex, QEvent
from PySide6.QtGui import QStandardItemModel, QStandardItem
class ButtonDelegate(QStyledItemDelegate):
def __init__(self, parent=None):
super(ButtonDelegate, self).__init__(parent)
def createEditor(self, parent, option, index):
# 创建一个按钮作为编辑器
pass
# button = QPushButton('点击', parent)
# button.clicked.connect(lambda: self._buttonClicked(index))
# return button
# def setEditorData(self, editor, index):
# # 设置按钮的数据,这里可以根据需要调整
# pass
# def setModelData(self, editor, model, index):
# # 将按钮的状态保存回模型,如果有必要的话
# pass
# def _buttonClicked(self, index):
# print(f"Button clicked at row {index.row()}, column {index.column()}")
def paint(self, pai