相关疑难解决方法(0)

无法在wxPython中正确使用wx.NotificationMessage

我最近升级到了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()
Run Code Online (Sandbox Code Playgroud)

在我的Windows 7计算机上,代码会创建一个小的白色任务栏图标,并创建一个带有短语"Hello World!"的弹出窗口.问题?消息不在我的图标上.正在创建另一个图标,并将消息放在那里.见图:http://www.pasteall.org/pic/18068">

我认为这可能是因为我在第22行没有传递父参数:

wx.NotificationMessage("", "Hello world!").Show()
Run Code Online (Sandbox Code Playgroud)

以下是我将其更改为:

wx.NotificationMessage("", "Hello world!", self).Show()
Run Code Online (Sandbox Code Playgroud)

"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 …
Run Code Online (Sandbox Code Playgroud)

python notifications wxwidgets message wxpython

6
推荐指数
2
解决办法
6107
查看次数

标签 统计

message ×1

notifications ×1

python ×1

wxpython ×1

wxwidgets ×1