Recentemente ho aggiornato alla versione di sviluppo di wxPython (wxPython 2.9.2.4) poiché avevo bisogno della funzionalità di wx.NotificationMessage all'interno della mia applicazione. Ho cercato invano di creare bolle di notifica su determinati eventi utente a causa di qualcosa che potrebbe essere un possibile errore. Prima di inviare questo bug, volevo andare avanti e chiedere alla gente della mailing list cosa ritengono possa essere il problema e speriamo di trovare una soluzione all'interno del mio codice.Impossibile utilizzare wx.NotificationMessage correttamente con wxPython
Ecco il codice che ho usato: "Ciao Mondo"
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()
Sul mio computer con Windows 7, il codice crea un piccolo bianco barra delle applicazioni l'icona e crea un popup con la frase. Il problema? Il messaggio non è sulla mia icona. Un'altra icona viene creata e il messaggio viene posizionato lì. Vedere questa immagine: http://www.pasteall.org/pic/18068" >
Quello che ho pensato è stata che questo è probabilmente dovuto al fatto che ho passato senza parametro padre sulla linea 22:
wx.NotificationMessage("", "Hello world!").Show()
Ecco quello che ho cambiato in:.
wx.NotificationMessage("", "Hello world!", self).Show()
Dove 'sé' si riferisce al l'icona barra delle applicazioni Quando lo faccio, ottengo un errore:
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 *'
Cosa sta succedendo? Se rimuovo quell'argomento, non ottengo il mio risultato, se aggiungo l'argomento, ottengo un errore! Come dovrei usare wx.NotificationMessage con un wx.TaskBarIcon!
Si prega di aiuto! Spero di aver fornito abbastanza dettagli. Si prega di commentare se avete bisogno di più!
Hai trovato documentazione per 2.9.2.4? Sono cieco o sfortunato ... – Fenikso