Невозможно правильно использовать wx.NotificationMessage с wxPython

Недавно я обновился до разрабатываемой версии wxPython (wxPython 2.9.2.4), так как мне нужна была функциональность wx.NotificationMessage в моем приложении. Я безуспешно пытался создать всплывающие подсказки для определенных пользовательских событий из-за того, что, по моему мнению, могло быть ошибкой.Перед отправкой такой ошибки я хотел пойти дальше и спросить людей из списка рассылки, что, по их мнению, может быть проблемой, и, надеюсь, найти решение в моем коде.

Вот код, который я использовал:

import wx, sys

app = wx.PySimpleApp()

class TestTaskBarIcon(wx.TaskBarIcon):

    def __init__(self):
        wx.TaskBarIcon.__init__(self)
        # create a test icon
        bmp = wx.EmptyBitmap(16, 16)
        dc = wx.MemoryDC(bmp)
        dc.SetBrush(wx.RED_BRUSH)
        dc.Clear()
        dc.SelectObject(wx.NullBitmap)

        testicon = wx.EmptyIcon()
        testicon.CopyFromBitmap(bmp)

        self.SetIcon(testicon)
        self.Bind(wx.EVT_TASKBAR_LEFT_UP, lambda e: (self.RemoveIcon(),sys.exit()))

        wx.NotificationMessage("", "Hello world!").Show()

icon = TestTaskBarIcon()
app.MainLoop()

На моем компьютере с Windows 7 код создает небольшой белый значок панели задач и создает всплывающее окно с фразой «Hello World!». Проблема? Сообщение отсутствует на моем значке. Создается еще один значок, и в него помещается сообщение. См. Это изображение: http://www.pasteall.org/pic/18068 ">

Я подумал, что это это, вероятно, связано с тем, что я не передал родительский параметр в строке 22:

wx.NotificationMessage("", "Hello world!").Show()

Вот что я изменил на:

wx.NotificationMessage("", "Hello world!", self).Show()

Где «self» относится к значку панели задач. Когда я это делаю, я получаю ошибка:

Traceback (most recent call last):
  File "C:\Python27\testnotificationmessage.py", line 24, in <module>
    icon = TestTaskBarIcon()
  File "C:\Python27\testnotificationmessage.py", line 22, in __init__
    wx.NotificationMessage("", "Hello world!", self).Show()
  File "C:\Python27\lib\site-packages\wx-2.9.2-msw\wx\_misc.py", line 1213, in __init__
    _misc_.NotificationMessage_swiginit(self,_misc_.new_NotificationMessage(*args))
TypeError: in method 'new_NotificationMessage', expected argument 3 of type 'wxWindow *'

Что происходит? Если я удалю этот аргумент, я не получу свой результат, если я добавлю аргумент, я получаю сообщение об ошибке! Как я должен использовать wx.NotificationMessage с wx.TaskBarIcon!

Пожалуйста, помогите! Надеюсь, я предоставил достаточно подробностей. Прокомментируйте, если вам нужно больше!

6
задан Sunjay Varma 23 September 2011 в 02:00
поделиться