Проблема интеграции с PyObjC и TKinter - PullRequest
0 голосов
/ 12 августа 2011

Следующий простой код:

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 Ответ

2 голосов
/ 26 октября 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...