wxPython事件驅(qū)動實例詳解
本文實例講述了wxPython的事件驅(qū)動機(jī)制,分享給大家供大家參考。具體方法如下:
先來看看如下代碼:
#!/usr/bin/python
# moveevent.py
import wx #導(dǎo)入wx庫
class MoveEvent(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(250, 180)) #窗口大小為(250, 180)
wx.StaticText(self, -1, 'x:', (10,10))#parent, id, title, point
wx.StaticText(self, -1, 'y:', (10,30))
self.st1 = wx.StaticText(self, -1, '', (30, 10))
self.st2 = wx.StaticText(self, -1, '', (30, 30))
self.Bind(wx.EVT_MOVE, self.OnMove) #綁定Frame的move事件
self.Centre()
self.Show(True)
def OnMove(self, event):
x, y = event.GetPosition()
self.st1.SetLabel(str(x))
self.st2.SetLabel(str(y))
app = wx.App()#生成應(yīng)用程序
MoveEvent(None, -1, 'move event')#調(diào)用自己的類,三個參數(shù)為:parent, id , title
app.MainLoop()#應(yīng)用程序事件循環(huán)
程序運行效果如下圖所示:

wxStaticText的兩個構(gòu)造函數(shù)官方文檔如下:
wxStaticText ()
Default constructor.
wxStaticText (wxWindow *parent, wxWindowID id, const wxString &label, const wxPoint &pos=wxDefaultPosition, const wxSize &size=wxDefaultSize, long style=0, const wxString&name=wxStaticTextNameStr)
Constructor, creating and showing a text control.
The event parameter in the OnMove() method is an object specific to a particular event type. In our case it is the instance of a wx.MoveEvent class. This object holds information about the event. For example the Event object or the position of the window. In our case the Event object is the wx.Frame widget. We can find out the current position by calling the GetPosition() method of the event.
OnMove()方法中的event參數(shù)是一種特殊的事件類型,在我們的例子中,它是wx.MoveEvnet類的一個實例.這個對象保存了事件的一些信息,比如這個事件對象或者窗口的位置.在我們例子中事件對象是一個wx.Frame控件.我們可以通過調(diào)用事件對象的GetPosition()得到當(dāng)前位置信息.
Vetoing events
Sometimes we need to stop processing an event. To do this, we call the method Veto().
#!/usr/bin/python
# veto.py
import wx
class Veto(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title, size=(250, 200))
self.Bind(wx.EVT_CLOSE, self.OnClose)
self.Centre()
self.Show(True)
def OnClose(self, event):
dial = wx.MessageDialog(None, 'Are you sure to quit?', 'Question',
wx.YES_NO | wx.NO_DEFAULT | wx.ICON_QUESTION)
ret = dial.ShowModal()
if ret == wx.ID_YES:
self.Destroy()
else:
event.Veto()
app = wx.App()
Veto(None, -1, 'Veto')
app.MainLoop()
希望本文所述對大家的Python程序設(shè)計有所幫助。
相關(guān)文章
python判斷一個集合是否包含了另外一個集合中所有項的方法
這篇文章主要介紹了python判斷一個集合是否包含了另外一個集合中所有項的方法,涉及Python集合操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python 獲取指定文件夾下的目錄和文件的實現(xiàn)
這篇文章主要介紹了Python 獲取指定文件夾下的目錄和文件的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
利用selenium 3.7和python3添加cookie模擬登陸的實現(xiàn)
這篇文章主要給大家介紹了關(guān)于利用selenium 3.7和python3添加cookie模擬登陸的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
python+selenium打印當(dāng)前頁面的titl和url方法
今天小編就為大家分享一篇python+selenium打印當(dāng)前頁面的titl和url方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-06-06

