gpt4 book ai didi

python - 引用 socket 时出现问题

转载 作者:行者123 更新时间:2023-12-03 17:23:29 24 4
gpt4 key购买 nike

我似乎在引用我的 socket 时遇到了麻烦,我终于可以进行拖放工作了(在 stackoverflow 成员的一些帮助下),但仍然无法让这个 socket 工作。

class controller(NSWindow):


form_file = IBOutlet()
mainWindow = IBOutlet()


#drag and drop ability
def awakeFromNib(self):
self.registerForDraggedTypes_([NSFilenamesPboardType, None])
print 'registerd drag type'


def draggingEntered_(self, sender):
print 'dragging entered'
pboard = sender.draggingPasteboard()
types = pboard.types()
opType = NSDragOperationNone
if NSFilenamesPboardType in types:
opType = NSDragOperationCopy
return opType


def performDragOperation_(self, sender):
print 'preform drag operation'
pboard = sender.draggingPasteboard()
successful = False
if NSFilenamesPboardType in pboard.types():
fileAStr = pboard.propertyListForType_(NSFilenamesPboardType)[0].encode('utf-8')
successful = True

#edit some things
print type(fileAStr)
self.form_file.setStringValue_(fileAStr)
return successful

我可以删除该文件,但无法从 performDragOperation 函数内部引用 form_file 导出。我想使用删除的文件中的 URL 更新 NSTextField,但它返回 NoneType 错误。

(reason '<type 'exceptions.TypeError'>: 'NoneType' object is not callable') was raised     during a dragging session

我试图捕获错误,因此我在 awakeFromNib 函数中添加了以下内容

    print type(self.formfile)
print type(self.mainWindow)
NSLog("formfile = %p", self.formfile)
NSLog("mainWindow = %p", self.mainWindow)
NSLog("self = %p", self)
print self

这将返回:

registerd drag type
<type 'NoneType'>
<type 'NoneType'>
2013-01-12 16:32:29.211 app [463:303] formfile = 0x10013c148
2013-01-12 16:32:29.212 app[463:303] mainWindow = 0x10013c148
2013-01-12 16:32:29.212 app[463:303] self = 0x105aba890
<controller: 0x1008a1600>
registerd drag type
<objective-c class NSTextField at 0x7fff785296e8>
<objective-c class controller at 0x10541b6a0>
2013-01-12 16:32:29.216 app[463:303] formfile = 0x105abaa10
2013-01-12 16:32:29.216 app[463:303] mainWindow = 0x105abaa10
2013-01-12 16:32:29.216 app[463:303] self = 0x105aba890
<controller: 0x1008afe00>

但是,如果我在draggingEntered 函数中进行相同的测试,那么我只会得到一个 Controller 和对象(NoneType 一个)。问题是它运行了 awakeFromNib 方法两次,对吗?我认为这可能是我的 xib 文件的问题,但我已经检查过它并且似乎无法找出问题所在。

任何想法,

汤姆

最佳答案

由于我不熟悉Python,我的建议可能有效,也可能无效……

如果 Python 有类并且您的文件是子类,请尝试在 awakeFromNib 中调用父类(super class)。

关于python - 引用 socket 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14271922/

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