最近,我已升级到 wxPython 的开发版本 (wxPython 2.9.2.4),因为我需要在我的应用程序中使用 wx.NotificationMessage 功能。由于某些可能是 bug 的问题,我一直在尝试在某些用户事件上创建通知气泡,但没有成功。在提交此类 bug 之前,我想先问问邮件列表的人们,他们认为可能存在什么问题,希望从我的代码中找到解决方案。
以下是我使用的代码:
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!
请帮忙!我希望我已经提供了足够的细节。如果您需要更多信息,请留言!