以下简单代码:
from PyObjCTools import AppHelper
import AppKit
import Tkinter
class App(AppKit.NSApplication):
def finishLaunching(self):
self.root=Tkinter.Tk()
_=App.sharedApplication()
AppHelper.runEventLoop()
产生以下异常:Python[23717:d07] -[App _setup:]: unrecognized selector sent to instance 0x105d05340
我做错了什么?
答案 0 :(得分:2)
我不认为你可以互换地混合使用Tkinter和Cocoa工具包。 self.root
是类App
的一个属性,它继承自AppKit.NSApplication
。我的猜测是Tk()
调用返回一个指针然后传递给Cocoa框架,但指向它无法理解的Tk数据结构。此外,Tkinter和PyObjC都需要自己的eventloop;我不确定你是否可以混合两者(虽然我从未尝试过)。
我的建议是使用一个UI工具包或另一个,但不能同时使用两者。