Стоит ли смешивать wxpython и pyobjc? - PullRequest
0 голосов
/ 01 апреля 2010

У меня есть приложение на основе wxPython, которое я портирую на Mac OS X, в котором мне нужно показать некоторые оповещения, которые должны выглядеть как родные оповещения Mac, поэтому я использую для этого pyobjc, например,

import Cocoa

import wx

app = wx.PySimpleApp()
frame = wx.Frame(None, title="mac alert test")
app.SetTopWindow(frame)
frame.Show()

def onclick(event):
    Cocoa.CFUserNotificationDisplayAlert(0, 3, 0, 0, 0, "Should i mix wxpython and objc", "hmmm...", 
                                         "Cool", "Not Cool", "Whatever")

frame.Bind(wx.EVT_LEFT_DOWN, onclick)
app.MainLoop()

Что-то не так в таком смешении кода wx и objc, какие-либо точки отказа?

Ответы [ 3 ]

0 голосов
/ 01 апреля 2010

По какой причине вы не просто пишете пользовательский диалог WX, который наследуется от wx.Dialog? У демоверсии WX есть очень хороший пример этого . Немного больше работы, но более чистый подход.

0 голосов
/ 03 апреля 2010

Не думаю, что это будет работать слишком хорошо, смешивая циклы событий ...

[РЕДАКТИРОВАТЬ: Первоначально я думал, что это, потому что диалоговое окно является моделью, а окно позади него нет, и может быть два цикла событий, борющихся за контроль. (Поскольку каждое окно имеет свое собственное, именно поэтому у вас могут быть окна Carbon и Cocoa (в основном это приложения другого типа).

С другой стороны, переднее окно - ваше диалоговое окно - контролирует весь цикл событий, если это модель, поэтому она может работать на самом деле.]

Я бы действительно предложил вам прочитать Руководство по интеграции углерода / какао . Теперь это сложнее, потому что вы на Python, а не на C, но это может объяснить некоторые концепции.

Я думаю, что в предыдущем проекте мы реализовали наш собственный диалог, подобный этому, включая настраиваемые тексты. (Так как мы использовали wxWidgets / C ++, мы просто реализовали это с помощью Carbon APIs со слоем wxWidgets, и мы выглядели довольно хорошо. (... и у нас была довольно сильно измененная версия wx ...))

0 голосов
/ 01 апреля 2010

Один из возможных вопросов; Я считаю, что вы, должно быть, используете версию wx для Mac, которая покоится на Carbon, потому что я думаю, что версия Cocoa еще не выпущена. После того, как будет выпущена версия с какао (для wx), я думаю, что должно быть «меньше» проблем. Сочетание углерода и какао кажется мне проблематичным, но я не могу указать на конкретные ошибки.

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