gpt4 book ai didi

python - 如何启用/禁用基于 QTreeView 事件的项目?

转载 作者:太空宇宙 更新时间:2023-11-03 15:24:22 25 4
gpt4 key购买 nike

我想在发送特定信号时启用/禁用 QTreeWidget 中的可检查项。

以下代码无效:

model = QStandardItemModel()
view = QTreeView()
view.setModel(model)
rootItem = QStandardItem()
rootItem = model.invisibleRootItem()

categoryItem = QStandardItem(item)
categoryItem.setCheckable(True)
rootItem.appendRow(categoryItem)

signalSource.availabilityChanged.connect(categoryItem.setEnabled)

它产生错误:

TypeError: unhashable type: 'PySide.QtGui.QStandardItem'

是否有通过信号/槽更改 QStandardItem 的状态或数据的解决方案?

最佳答案

这看起来像是 PySide 中的错误,因为 connect 应该接受任何可调用的(示例代码在 PyQt4 中正常工作)。

作为解决方法,尝试将 QStandardItem 方法包装在 lambda 中:

signalSource.availabilityChanged.connect(
lambda enable: categoryItem.setEnabled(enable))

编辑

要在循环中连接项目,请使用默认参数,如下所示:

for button in buttonList:
item = QStandardItem("Test")
...
button.toggled.connect(
lambda enable, item=item: item.setEnabled(enable))

关于python - 如何启用/禁用基于 QTreeView 事件的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com