国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

wxPython事件驅(qū)動實例詳解

2019-11-25 18:11:04
字體:
供稿:網(wǎng)友

本文實例講述了wxPython的事件驅(qū)動機制,分享給大家供大家參考。具體方法如下:

先來看看如下代碼:

#!/usr/bin/python  # moveevent.py  import wx  #導入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()#生成應用程序 MoveEvent(None, -1, 'move event')#調(diào)用自己的類,三個參數(shù)為:parent, id , title app.MainLoop()#應用程序事件循環(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()得到當前位置信息.

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程序設計有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 博湖县| 滨州市| 长海县| 娄底市| 察雅县| 秀山| 新巴尔虎右旗| 正定县| 慈溪市| 三明市| 瑞安市| 曲麻莱县| 贵德县| 南涧| 广德县| 黄浦区| 大埔区| 宁阳县| 育儿| 铜山县| 苍溪县| 丹阳市| 常山县| 榆林市| 富源县| 新源县| 石泉县| 迭部县| 秀山| 香格里拉县| 武汉市| 腾冲县| 沈丘县| 临沭县| 尼勒克县| 蕲春县| 东兰县| 纳雍县| 湛江市| 江源县| 屯门区|