wxPython事件驅(qū)動(dòng)實(shí)例詳解
本文實(shí)例講述了wxPython的事件驅(qū)動(dòng)機(jī)制,分享給大家供大家參考。具體方法如下:
先來(lái)看看如下代碼:
#!/usr/bin/python
# moveevent.py
import wx #導(dǎo)入wx庫(kù)
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)用自己的類,三個(gè)參數(shù)為:parent, id , title
app.MainLoop()#應(yīng)用程序事件循環(huán)
程序運(yùn)行效果如下圖所示:

wxStaticText的兩個(gè)構(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類的一個(gè)實(shí)例.這個(gè)對(duì)象保存了事件的一些信息,比如這個(gè)事件對(duì)象或者窗口的位置.在我們例子中事件對(duì)象是一個(gè)wx.Frame控件.我們可以通過(guò)調(diào)用事件對(duì)象的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()
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法
這篇文章主要介紹了python判斷一個(gè)集合是否包含了另外一個(gè)集合中所有項(xiàng)的方法,涉及Python集合操作的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python 獲取指定文件夾下的目錄和文件的實(shí)現(xiàn)
這篇文章主要介紹了Python 獲取指定文件夾下的目錄和文件的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
利用selenium 3.7和python3添加cookie模擬登陸的實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于利用selenium 3.7和python3添加cookie模擬登陸的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
使用Python實(shí)現(xiàn)遺傳算法的完整代碼
這篇文章主要介紹了使用Python實(shí)現(xiàn)遺傳算法,其本質(zhì)是一種高效、并行、全局搜索的方法,自適應(yīng)的控制搜索過(guò)程以求得最優(yōu)解,需要的朋友可以參考下2023-03-03
python+selenium打印當(dāng)前頁(yè)面的titl和url方法
今天小編就為大家分享一篇python+selenium打印當(dāng)前頁(yè)面的titl和url方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
解決python 使用openpyxl讀寫(xiě)大文件的坑
這篇文章主要介紹了解決python 使用openpyxl讀寫(xiě)大文件的坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

