Rundung Schaltfläche Ecken in kivy
Was ist der bevorzugte Weg, um erstellen Sie abgerundete Ecken für Schaltflächen in kivy?
Gibt es andere, ebenso effektive Wege, um diese Aufgabe auszuführen? Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist eine knifflige Sache. Soweit ich bin besorgt
Widgets
sind immer Rechtecke. Aber wir können den hintergrund ändern und ein paar Bilder für den normal-und down-Zustände mit dembackground_normal
undbackground_down
Eigenschaften beziehungsweise. Auch Sie müssen verstehen, dieborder
Eigenschaft.Mit dieser zwei Bilder, sogenannte
normal.png
unddown.png
können Sie beginnen, indem Sie Ihre Runde Grenzen.Hier ist das Stück code, das ist sehr geradlinig (ich versuche zu erklären, die
border
Eigenschaft unten):So wie ich das verstehe (und ich könnte falsch sein) ist diese. Die Werte in
border: 30,30,30,30
erzählt, wie viele Pixel für oben, rechts, unten und Links gehen, um verwendet werden, für die Umrandung der hintergrund-button. Der rest wird gefüllt mit dem mittleren Teil. Ich bin mir nicht sicher hier. By the way, Wenn Sie wollen, um zu sehen, etwas abkühlen lassen, siehe zum Beispielborder: 150,150,150,150
. Der Grund ist, dass wir Kommissionierung bis eine Grenze größer als das eigentliche Bild.Der Nachteil: Widgets sind noch Rechtecke. Das bedeutet, dass selbst wenn Sie klicken Sie auf die abgerundeten Ecken, die Schaltfläche immer noch das Ereignis erhalten. Ich denke, es ist ein fairer Preis. Wenn Sie wollen, etwas besseres zu tun, vielleicht kann ich Ihnen helfen, aber wir müssen einige Mathe zu treffen, so Punkte. Einer der tricks, mit dem Pong Spiel-tutorial in der Dokumentation ist, dass eigentlich der ball ist ein Quadrat. Ich habe eine Frage im Zusammenhang mit hier, aber Sie müssen verwenden Sie die
Canvas
Wenn Sie auf der Suche nur für gutes Aussehen, und sind nicht wählerisch in Bezug auf die Ecken, obwohl gerundeten, noch touch-Punkte, die Sie tun können, es einfach, wie in diesem Beispiel-Programm (Dies hat einen großen radius für dieses Beispiel):