2011-08-12 44 views
0

下面的简单代码:整合问题与PyObjC和使用TKinter

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

我在做什么错?

回答

2

我不认为你可以混合Tkinter和Cocoa工具包,以便互换。 self.root是继承于AppKit.NSApplication的类App的属性。我的猜测是Tk()调用返回一个指针,然后传递给Cocoa框架,但指向它不能理解的Tk数据结构。此外,Tkinter和PyObjC都需要自己的事件回调;我不确定你是否可以混合两者(尽管我从未尝试过)。

我的建议是使用一个UI工具包或其他,但不是两者。