table.dataChanged(index, index).connect(someFunction) 失败
Posted
技术标签:
【中文标题】table.dataChanged(index, index).connect(someFunction) 失败【英文标题】:table.dataChanged(index, index).connect(someFunction) fails 【发布时间】:2015-07-10 06:18:15 【问题描述】:table = QTableView()
model = QStandardItemModel()
table.setModel(model)
r = table.model().rowCount()
c = table.model().columnCount()
tLeft = table.model().index(0, 0)
bRight = table.model().index(r, c)
table.dataChanged(tLeft, bRight).connect(SomeFunction)
AttributeError: 'NoneType' object has no attribute 'connect'
目标 - 当 QTableView()
中的用户直接更改其中一项时调用 SomeFunction
。
我做错了什么?我看到 NoneType 对象不能有属性 connect,但为什么它是 NoneType。
请发表评论。我是初学者。 Qt5.
【问题讨论】:
看起来函数table.dataChanged(tLeft, bRight)
返回None
。应该从table
对象调用connect
方法吗? (这只是猜测,我没用过Qt5)
如果我把它应用到像table.model().dataChanged(tLeft, bRight).connect(SomeFunction)
这样的模型上,它会说TypeError: native Qt signal is not callable
您查看文档了吗?你的哪些对象有connect
方法?你见过它工作的例子吗?
进一步阅读:PyQt5 signals and slots。对于 PyQt4 及之前的版本,还有另一种连接信号和插槽的方式,但在 PyQt5 中不再支持。
【参考方案1】:
你应该这样做:
table.model().dataChanged.connect(someFunction)
# or model.dataChanged.connect(someFunction)
不需要精确的论点。插槽应如下所示:
def someFunction(tLeft,bRight):
#do stuff
【讨论】:
以上是关于table.dataChanged(index, index).connect(someFunction) 失败的主要内容,如果未能解决你的问题,请参考以下文章
pandas重设index set_index和resert_index
为啥 Dictionary[index] 会抛出 KeyNotFoundException 而 Hashtable[index] 不会?