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

标签 python pyqt pyqt4 qtablewidget qtablewidgetitem

我如何为多个 QTableWidget(不仅仅是 self.general_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

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) 

关于python - 具有类的多个 QTableWidget 的只读行并获得更高的效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43514184/

相关文章:

python - 如何检查复选框是否已选中或未选中? (在 QTreeWidget 中)

python - 更改 QTableWidgetItem 背景颜色

pyqt4 - QtWebKit:控制每个http请求可以消耗的时间

python - PyQt Node 接口(interface) - ItemIsMovable 对象的父对象

python - 如何在 Django 中设置 ManyToMany 字段的值?

python - 如何在Python中循环另一个循环

python - python'function'对象没有属性'GzipFile'

python - 如何使用 QDataStream 在 Python 中打开一个 bin 文件

python - 如何在PyQt4的QListWidget中制作同步滚动条

用于解析路由器配置的 Python 正则表达式