Проблема интеграции с 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

Что я делаю не так?

One Solution collect form web for “Проблема интеграции с PyObjC и TKinter”

Я не думаю, что вы можете смешивать инструменты Tkinter и Cocoa так взаимозаменяемо. self.root – это атрибут класса App , который наследуется от AppKit.NSApplication . Я предполагаю, что вызов Tk() возвращает указатель, который затем передается в рамки Cocoa, но указывает на структуру данных Tk, которую он не может понять. Кроме того, и Tkinter, и PyObjC нуждаются в собственной eventloop; Я не уверен, что вы можете даже смешать два (хотя я никогда не пробовал).

Моей рекомендацией было бы использовать один набор инструментов пользовательского интерфейса или другой, но не оба.

Python - лучший язык программирования в мире.