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)用自己的類(lèi),三個(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ù)是一種特殊的事件類(lèi)型,在我們的例子中,它是wx.MoveEvnet類(lèi)的一個(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正則表達(dá)式re之compile函數(shù)解析
這篇文章主要介紹了python正則表達(dá)式re之compile函數(shù)解析,介紹了其定義,匹配模式等相關(guān)內(nèi)容,具有一定參考價(jià)值,需要的朋友可以了解下。2017-10-10Ubuntu16.04 安裝多個(gè)python版本的問(wèn)題及解決方法
Ubuntu16.04自帶python2.7與python3.5,Ubuntu 官方 apt 庫(kù)中還未收錄 python 3.8,因此添加 deadsnakes PPA 源安裝python3.8,否則會(huì)出現(xiàn)報(bào)錯(cuò),接下來(lái)通過(guò)本文給大家介紹Ubuntu16.04 安裝python的問(wèn)題,一起看看吧2021-09-09在langchain中對(duì)大模型的輸出進(jìn)行格式化實(shí)現(xiàn)
這篇文章主要為大家介紹了在langchain中對(duì)大模型的輸出進(jìn)行格式化實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11pytorch中的matmul與mm,bmm區(qū)別說(shuō)明
這篇文章主要介紹了pytorch中的matmul與mm,bmm區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05在Python中使用判斷語(yǔ)句和循環(huán)的教程
這篇文章主要介紹了在Python中使用判斷語(yǔ)句和循環(huán)的教程,是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),代碼基于Python2.x,需要的朋友可以參考下2015-04-04PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典
這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)簡(jiǎn)易電子詞典,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-06-06Python實(shí)現(xiàn)查找數(shù)據(jù)庫(kù)最接近的數(shù)據(jù)
這篇文章主要介紹了Python實(shí)現(xiàn)查找數(shù)據(jù)庫(kù)最接近的數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06