Ich möchte eine benutzerdefinierte Schaltfläche in WxPython machen. Wo soll ich anfangen, wie soll ich das machen?Wie man benutzerdefinierte Tasten in Wx machen?
Antwort
hier ein Skelett ist, die Sie völlig benutzerdefinierte Schaltfläche verwenden können, um Ihre Phantasie sein bis zu ziehen, wie es aussieht oder verhält
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
Sie können die Standard-Schaltfläche-Klasse erweitern, wie dies zum Beispiel:
class RedButton(wx.Button):
def __init__(self, *a, **k):
wx.Button.__init__(self, *a, **k)
self.SetBackgroundColour('RED')
# more customization here
Jedes Mal, wenn Sie ein RedButton
in Ihr Layout setzen, sollte es rot erscheint (habe es aber nicht getestet).
Versuchen Sie eine Generic Button oder eine Bitmap Button.
Wenn ich lernen wollte, wie benutzerdefinierte Widgets zu machen (Schaltflächen) I verweisen Andrea Gavana's page (voll funktionierendes Beispiel dort) auf dem wxPyWiki und Cody Precord der platebutton (die Quelle in wx.lib.platebtn ist, auch here in SVN) . Schauen Sie sich beide an und Sie sollten in der Lage sein, fast jedes benutzerdefinierte Widget zu erstellen, das Sie möchten.
- 1. wie benutzerdefinierte die Tasten des KNP paginator
- 2. Android benutzerdefinierte Tasten
- 3. Benutzerdefinierte Tasten sublime
- 4. Python WX - Benutzereingabe von Wx Dialog
- 5. wie man benutzerdefinierte actionbarnogle button in android machen?
- 6. Wie kann man benutzerdefinierte Array in PHP machen?
- 7. wx Importfehler
- 8. Wie man benutzerdefinierte CSS-Schriften machen Rendern genau wie Entwürfe
- 9. Erlang Wx: wie neue Widgets
- 10. HTML-Eingabefeld benutzerdefinierte Schritt Tasten
- 11. Wie man ein Menüleiste Icon auf Mac OSX mit wx
- 12. wx Python Unterklasse Dialog
- 13. Wie AlertDialog benutzerdefinierte Schaltflächen Android machen?
- 14. enthought Python-Distribution wx
- 15. Titel machen Bleib nach Tasten Höhe ändern
- 16. Javafx wie man Tasten über Funktion erstellt?
- 17. Benutzerdefinierte Anmerkungen anpassbar machen
- 18. Machen Sie Tasten Split JPanel - Java Swing
- 19. Wie man Material Design Vollbild-Dialog machen?
- 20. machen benutzerdefinierte QProgressBar
- 21. Wie man die Auf-/Ab-Tasten in der QDoubleSpinBox deaktiviert
- 22. Telegramm bietet api benutzerdefinierte Tasten Nachricht
- 23. Wie benutzerdefinierte Seiten für benutzerdefinierte Post-Typen machen
- 24. Wie man benutzerdefinierte Suchfunktionen macht
- 25. Wie man Modal mit mehreren Tasten öffnet?
- 26. Wie man eine android mm sauber machen?
- 27. Redux-Form: Wie behandelt man mehrere Tasten?
- 28. wie man Tasten der gleichen Größe macht
- 29. TVirtualStringTree - Wie ändert man die Tasten [-]/[+]?
- 30. wx haskell Drag & Drop Beispiel
für das Sie so vielen Dank! Ich werde es ausgiebig benutzen! – Mizmor