ReadOnly row for more than one QTableWidget with class 并获得更高的效率
ReadOnly row for more than one QTableWidget with class and get more efficiency
我如何为多个 QTableWidget(不仅是 self.general_table)重写下面的代码? 我不想为每个 table.
输入相同的代码
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
执行 class QTableWidgetEnDisabledItem
self.Size = QTableWidgetEnDisabledItem(self.general_table, "enabled")
self.general_table.setItemDelegateForRow(index.row(),self.Size)
您可以创建一个列表,其中包含您必须使用 for 执行所需命令的表。
tables = [self.general_table, self.layers_table]
for table in tables:
itemDelegate = QTableWidgetEnDisabledItem(table, "enabled")
table.setItemDelegateForRow(index.row(), itemDelegate)
我如何为多个 QTableWidget(不仅是 self.general_table)重写下面的代码? 我不想为每个 table.
输入相同的代码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
执行 class QTableWidgetEnDisabledItem
self.Size = QTableWidgetEnDisabledItem(self.general_table, "enabled")
self.general_table.setItemDelegateForRow(index.row(),self.Size)
您可以创建一个列表,其中包含您必须使用 for 执行所需命令的表。
tables = [self.general_table, self.layers_table]
for table in tables:
itemDelegate = QTableWidgetEnDisabledItem(table, "enabled")
table.setItemDelegateForRow(index.row(), itemDelegate)