wxPython事件驅(qū)動實例詳解
本文實例講述了wxPython的事件驅(qū)動機制,分享給大家供大家參考。具體方法如下:
先來看看如下代碼:
#!/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正則表達(dá)式re之compile函數(shù)解析
這篇文章主要介紹了python正則表達(dá)式re之compile函數(shù)解析,介紹了其定義,匹配模式等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。2017-10-10Ubuntu16.04 安裝多個python版本的問題及解決方法
Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會出現(xiàn)報錯,接下來通過本文給大家介紹Ubuntu16.04 安裝python的問題,一起看看吧2021-09-09在langchain中對大模型的輸出進(jìn)行格式化實現(xiàn)
這篇文章主要為大家介紹了在langchain中對大模型的輸出進(jìn)行格式化實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11pytorch中的matmul與mm,bmm區(qū)別說明
這篇文章主要介紹了pytorch中的matmul與mm,bmm區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05Python實現(xiàn)查找數(shù)據(jù)庫最接近的數(shù)據(jù)
這篇文章主要介紹了Python實現(xiàn)查找數(shù)據(jù)庫最接近的數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06