我最近升级到wxPython(wxPython 2.9.2.4)的开发版本,因为我的应用程序中需要wx.NotificationMessage的功能。我一直试图在某些用户事件上创建通知气泡,但没有成功,因为我认为这可能是一个错误。在提交这样的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()
在我的Windows7电脑上,代码创建了一个白色的小任务栏图标,并创建了一个弹出窗口,上面写着“HelloWorld!”。有问题吗?消息不在我的图标上。正在创建另一个图标并将消息放置在其中。 请参见下图: http://www.pastell.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!
请帮忙!我希望我已经提供了足够的细节。如果你需要更多,请评论!
我不建议使用2.9。我在试穿时遇到了一些奇怪的虫子。
您可以在2.8中使用相同的功能。我正在使用一些修改过的代码,我已经找到了一些前一段时间。
在
TaskBarIcon
中有一个名为ShowBalloon
的未记录的隐藏方法,它仅在Windows中实现。来自the source:
我用wxPython 2.9.4.0在Windows上进行了测试,效果很好。
相关问题 更多 >
编程相关推荐