【问题标题】:Why I get a TypeError: PySide2.QtCore.QStringListModel.setData(): not enough arguments为什么我得到一个 TypeError: PySide2.QtCore.QStringListModel.setData(): no enough arguments
【发布时间】:2020-06-25 07:00:11
【问题描述】:

我尝试像这样在 PySide2 中的 QStringListModel 中添加新字符串

self.model = QStringListModel()
n = self.model.rowCount()
self.model.insertRow(n)
i = self.model.index(n,0)
self.model.setData(index= i,value='Hello World!!',role=Qt.EditRole)

在 insertRow() 之前运行正常, 但我得到一个 TypeError: PySide2.QtCore.QStringListModel.setData(): 没有足够的参数 在最后一行。 因为我填写了这个函数中的所有参数。 这个错误是如何发生的以及如何解决它? 请帮帮我。

【问题讨论】:

    标签: python qt pyside2


    【解决方案1】:

    QStringListModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)

    重新实现:QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role)。

    将模型中具有给定索引的项目中指定角色的数据设置为提供的值。

    如果项目发生更改,则会发出 dataChanged() 信号。发出 dataChanged() 信号后返回 true。

    改变

    self.model.setData(index= i,value='Hello World!!',role=Qt.EditRole)
    

    self.model.setData(i, 'Hello World!!', role=Qt.EditRole)
    

    【讨论】:

      猜你喜欢
      • 2015-07-19
      • 2015-05-01
      • 2013-10-16
      • 2020-09-18
      • 2019-06-08
      • 1970-01-01
      • 2022-11-28
      • 2020-01-04
      • 2021-08-04
      相关资源
      最近更新 更多