我想在wxPython中創建一個自定義按鈕。我應該從哪裏開始,我該怎麼做?如何在wx中創建自定義按鈕?
5
A
回答
8
這裏是一個骨架,你可以用它來繪製完全自定義按鈕,其高達你的想象力,它的外觀或行爲
class MyButton(wx.PyControl):
def __init__(self, parent, id, bmp, text, **kwargs):
wx.PyControl.__init__(self,parent, id, **kwargs)
self.Bind(wx.EVT_LEFT_DOWN, self._onMouseDown)
self.Bind(wx.EVT_LEFT_UP, self._onMouseUp)
self.Bind(wx.EVT_LEAVE_WINDOW, self._onMouseLeave)
self.Bind(wx.EVT_ENTER_WINDOW, self._onMouseEnter)
self.Bind(wx.EVT_ERASE_BACKGROUND,self._onEraseBackground)
self.Bind(wx.EVT_PAINT,self._onPaint)
self._mouseIn = self._mouseDown = False
def _onMouseEnter(self, event):
self._mouseIn = True
def _onMouseLeave(self, event):
self._mouseIn = False
def _onMouseDown(self, event):
self._mouseDown = True
def _onMouseUp(self, event):
self._mouseDown = False
self.sendButtonEvent()
def sendButtonEvent(self):
event = wx.CommandEvent(wx.wxEVT_COMMAND_BUTTON_CLICKED, self.GetId())
event.SetInt(0)
event.SetEventObject(self)
self.GetEventHandler().ProcessEvent(event)
def _onEraseBackground(self,event):
# reduce flicker
pass
def _onPaint(self, event):
dc = wx.BufferedPaintDC(self)
dc.SetFont(self.GetFont())
dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
dc.Clear()
# draw whatever you want to draw
# draw glossy bitmaps e.g. dc.DrawBitmap
if self._mouseIn:
pass# on mouserover may be draw different bitmap
if self._mouseDown:
pass # draw different image text
3
可以擴展默認的按鈕類,像這樣的例子:
class RedButton(wx.Button):
def __init__(self, *a, **k):
wx.Button.__init__(self, *a, **k)
self.SetBackgroundColour('RED')
# more customization here
你把RedButton
到您的佈局每一次,它應該出現紅色(沒有測試過,雖然)。
2
5
當我想了解如何使定製的部件(包括按鈕),我引用Andrea Gavana's page(全在那裏工作的例子)在wxPyWiki和Cody Precord的platebutton(源是wx.lib.platebtn,也是在SVN here) 。看看這兩者,你應該能夠構建你想要的任何自定義小部件。
相關問題
- 1. 創建自定義按鈕
- 2. 在WPF中創建自定義「+」按鈕
- 3. 如何在android xml中創建自定義按鈕
- 4. 如何在Netbeans工具欄中創建自定義按鈕?
- 5. 如何在Expression Blend混合中創建自定義按鈕?
- 6. 如何在Adobe Campaign中創建自定義按鈕?
- 7. 如何在ASP.NET的DetailsView中創建自定義按鈕?
- 8. 創建兩個自定義按鈕
- 9. 爲按鈕創建自定義形狀
- 10. Tkinter的創建自定義按鈕
- 11. 創建自定義複合按鈕欄
- 12. Django的summernote創建自定義按鈕
- 13. Highcharts創建配置自定義按鈕
- 14. 自定義按鈕/菜單按鈕,在CRM創建表單2013
- 15. 如何在自定義按鈕點擊時創建視圖
- 16. 如何使用中性按鈕創建自定義首選項?
- 17. 如何在UITableViewCell中自定義按鈕?
- 18. 如何創建一個自定義按鈕鏈接到網址
- 19. Android:如何創建自定義按鈕小部件
- 20. 如何創建一個像Facebook一樣的自定義按鈕?
- 21. 如何創建兩個自定義表格單元格按鈕?
- 22. Yii2:如何創建自定義刪除按鈕?
- 23. 如何啓用使用自定義控件創建的按鈕
- 24. 如何創建自定義確認按鈕
- 25. 如何創建自定義反饋按鈕?
- 26. 如何創建自定義Facebook「贊」按鈕?
- 27. 如何爲按鈕創建自定義雙擊事件
- 28. 如何創建一個自定義的Facebook「Like」按鈕?
- 29. 如何創建自定義字幕和一些按鈕
- 30. 如何創建像圖像一樣的自定義按鈕
非常感謝你爲這個!我會廣泛使用它! – Mizmor 2012-07-03 19:12:36