首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

wxpython怎么发送消息,就好像windows下的postmessage一样

2012-02-23 
wxpython如何发送消息,就好像windows下的postmessage一样postevent是吗?怎么觉得他好麻烦比如我要发送选择

wxpython如何发送消息,就好像windows下的postmessage一样
postevent是吗?怎么觉得他好麻烦
比如我要发送选择菜单消息,应该怎么做?

[解决办法]
关键往哪发送消息,是什么应用(postmessage不熟)
不过发消息一般套接字,网络就http
[解决办法]
LZ说的是GUI消息,LS可能误会了。

wxPython定义了一套消息,但它没有文档,很不爽。

举个例子吧:
我做了个grid,现在要往里面加入一行数据,

Python code
import wx.grid as GridmsgAppendRows = Grid.GridTableMessage(grid.GetTable(), # The table                  Grid.GRIDTABLE_NOTIFY_ROWS_APPENDED, # what we did to it                  1                                    # how many                )grid.ProcessTableMessage(msgAppendRows)
[解决办法]
好像文档同c++是一样,python下不是很好用,你可以试试输出个简单文档,保存下来以后参考就稍微方便点...
import wx
help(wx)
[解决办法]
1.PostMessage函数需要接收窗口的句柄.所以wxPython也不例外.
2.看看这个网页:http://www.czug.org/python/wxpythoninaction/ch03.htm.
3.我忘记了从哪里搞来的下面一段代码

LogEvent, EVT_LOG_EVENT = wx.lib.newevent.NewEvent() #创建新事件

class MyFrame(wx.Frame):
def __init__(self, parent, ID, title):
#若干其它代码
self.Bind(EVT_LOG_EVENT, self.LogEvent_Process) #绑定事件处理函数

def LogEvent_Process(self, evt):
#响应事件代码
print evt.msg

#制造并发送事件给wxObject
def PostEvent(wxObject, message, **kwargs):
event = LogEvent(msg=message, **kwargs) #msg参数类型应该不止是字串.
wx.PostEvent(wxObject, event)

class MyApp(wx.App):
frame = MyFrame(None, -1, "Hello, world") #实例化MyFrame
#创建某线程,将frame作为参数传递给该线程.或者让frame成为全局变量.
#并在线程中调用PostEvent(frame, "send Event from thread!")

4.上面的代码我没测试过,仅供参考.
[解决办法]
wxPython的消息都是基本上都是用回調的方式進行。
也就是用自己的函數綁定或覆蓋wxPython定義的函數實現消息發送。
可以看下wxDemo中相關的例子。

热点排行