QListWidget项目文本未使用If语句返回

问题描述 投票:0回答:1

我有一个QListWidget。我在itemClicked上运行此功能,并且该程序的其他部分也调用了此功能。因此,此函数具有可选参数cutrrentItemText。由于某种原因,我的代码无法正常工作。检查以下示例。

def loadSomething(self,currentItemText=None):
    if not currentItemText:
        item = self.listWidget.currentItem()
        currentItemText = item.text()
    print currentItemText

#result from above code
<PySide2.QtWidgets.QListWidgetItem object at 0x7f910b112e60>

代替项目文本,它分配项目对象。这是没有if语句的代码,它像魅力一样工作。

def loadSomething(self,currentItemText=None):
    #if not currentItemText:
    item = self.listWidget.currentItem()
    currentItemText = item.text()
    print currentItemText

#result of this give currentItems text

我想知道我在哪里犯错。谁能告诉我这段代码有什么问题吗?

注意:我正在Foundry核武器中尝试此操作。尝试自定义python面板。

更新:在我的主窗口小部件初始化中,我有这个要连接itemClicked事件

self.listWidget.itemClicked.connect( self.loadSomething )

已解决:

我刚刚意识到,itemClicked事件会在回调时发送当前的item对象。所以第一个参数应该是item,

def loadSomething(self,item,currentItemText=None) 

已完成更改

python pyside2 nuke
1个回答
0
投票

尝试此代码(我在Catalina的NukeX 12.0v3中对其进行了测试:]

from PySide2 import QtWidgets, QtGui
import nuke

def loadSomething(currentItemText=None):
    if not currentItemText:
        item = QListWidget.currentItem()
        currentItemText = item.text()
    print currentItemText

loadSomething(currentItemText="Some")

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.