PyObjC和TKinter的集成问题

时间:2011-08-12 15:31:40

标签: python macos tkinter pyobjc

以下简单代码:

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

我做错了什么?

1 个答案:

答案 0 :(得分:2)

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

我的建议是使用一个UI工具包或另一个,但不能同时使用两者。