Python 具有类的多个QTableWidget的只读行并获得更高的效率

Python 具有类的多个QTableWidget的只读行并获得更高的效率,python,pyqt,pyqt4,qtablewidget,qtablewidgetitem,Python,Pyqt,Pyqt4,Qtablewidget,Qtablewidgetitem,我如何为不止一个QTableWidget(而不仅仅是self.general_表)重写下面的代码我不想为每个表输入相同的代码。 class QTableWidgetEnDisabledItem(QtGui.QItemDelegate): """ Create a readOnly/editable QTableWidgetItem """ def __init__(self, parent, state): self.state = state

我如何为不止一个QTableWidget(而不仅仅是self.general_表)重写下面的代码我不想为每个表输入相同的代码。

class QTableWidgetEnDisabledItem(QtGui.QItemDelegate):
    """
    Create a readOnly/editable QTableWidgetItem
    """
    def __init__(self, parent, state):
        self.state = state
        QtGui.QItemDelegate.__init__(self, parent)

    def createEditor(self, parent, option, index):
        item = QtGui.QLineEdit(parent)
        if self.state == "disabled":
            item.setReadOnly(True)
        elif self.state == "enabled":
            item.setEnabled(True)
        return item
类qtableWidgetEndisableItem的执行

self.Size = QTableWidgetEnDisabledItem(self.general_table, "enabled")
self.general_table.setItemDelegateForRow(index.row(),self.Size)

您可以创建一个包含表的列表,这些表必须用于执行所需命令

tables = [self.general_table, self.layers_table]

for table in tables:
    itemDelegate = QTableWidgetEnDisabledItem(table, "enabled") 
    table.setItemDelegateForRow(index.row(), itemDelegate) 

“我不想为每个表放置相同的代码”的含义是什么?例如:
self.Size=qtableWidgetEndisableItem(self.general\u table,“enabled”)self.general\u table.setItemDelegateForRow(index.row(),self.Size)self.Size=qtableWidgetEndisableItem(self.layers\u table,“enabled”)self.layers\u table.setItemDelegateForRow(index.row()),self.Size)
它的工作非常完美,非常有用。我认为如果我使用list,我也必须更改class参数。好主意,谢谢你。