Я недавно обновился до версии разработки 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()
Где «я» относится к значку панели задач.Когда я это делаю, я получаю сообщение об ошибке:
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!
Пожалуйста, помогите!Я надеюсь, что предоставил достаточно деталей.Пожалуйста, прокомментируйте, если вам нужно больше!