Heim >Backend-Entwicklung >Python-Tutorial >Arbeiten mit Schaltflächen mithilfe von Python-Kivy- und .kv-Dateien

Arbeiten mit Schaltflächen mithilfe von Python-Kivy- und .kv-Dateien

WBOY
WBOYnach vorne
2023-09-05 18:17:111761Durchsuche

Das Entwerfen interaktiver Benutzeroberflächen für Kivy-Anwendungen ist durch die Verwendung von Schaltflächen in .kv-Dateien einfach und effektiv. Kivy ist ein Python-Framework zum Erstellen plattformübergreifender Anwendungen, das den Dateityp .kv verwendet, um das visuelle Erscheinungsbild und die Funktionalität von Schaltflächen vom zugrunde liegenden Code zu trennen. Die deklarative Sprache von .kv-Dateien wird verwendet, um Schaltflächeneigenschaften wie Text, Größe und Ereignishandler bereitzustellen, sodass Entwickler einfache, kompakte und verwaltbare Benutzeroberflächen erstellen können. Entwickler können das Erscheinungsbild und die Funktionalität von Schaltflächen einfach ändern, indem sie diese direkt zur .kv-Datei hinzufügen, ohne redundanten Inhalt im Python-Code hinzuzufügen

Abgedeckte Themen

  • Python Kivy-Funktionen

  • Button-Einführung

  • Entwerfen Sie Apps mit Kivy

Funktionen von Python Kivy

  • User Interface (UI) Framework: Um interaktive UIs zu erstellen, stellt Kivy verschiedene Widgets und Layout-Manager zur Verfügung, um verschiedene Anforderungen zu erfüllen. Es ist mit einer Vielzahl von Eingabetechnologien kompatibel, darunter Touch-Gesten, Mausklicks, Tastaturereignisse und mehr

  • Multi-Touch-Unterstützung: Kivy eignet sich für Touch-fähige Geräte wie Smartphones und Tablets, da es für die Verwaltung von Multi-Touch-Interaktionen konzipiert ist.

  • Grafik und Animation: Dank der leistungsstarken Grafikfunktionen von Kivy können Entwickler wunderschöne Apps mit reibungslosen Animationen und Übergängen erstellen.

  • Plattformübergreifende Entwicklung: Da die Python-Kivy-Anwendung tatsächlich plattformübergreifend ist, müssen Entwickler den Code nur einmal schreiben, um ihn ohne größere Änderungen auf mehreren Plattformen zu verwenden.

  • Open Source und Community-orientiert: Eine blühende Community aus Entwicklern und Freiwilligen verbessert und erweitert das Open-Source-Projekt Kivy weiter.

  • Einfach zu erlernen: Die Syntax von Kivy ist einfach und intuitiv, was sie besonders für Python-Entwickler leicht verständlich macht. Sowohl Anfänger als auch erfahrene Entwickler können es verwenden, da es beim Erstellen von Benutzeroberflächen einen deklarativen Ansatz verfolgt

Button-Einführung

In Kivy sind Schaltflächen-Widgets interaktive Widgets, die Benutzereingaben aufzeichnen und bestimmte Aktionen oder Ereignisse in einem Python-Programm auslösen. Sie ermöglichen Benutzern die Interaktion mit Anwendungen und sind ein wichtiger Bestandteil der Benutzeroberfläche. In den meisten Anwendungen reagieren Schaltflächen auf Berührungen, Mausklicks, Tastaturaktionen usw. und verfügen über eine visuelle Darstellung wie Text oder ein Bild

Die Button-Klasse ist eine Komponente der Kivy-Bibliothek und wird zur Darstellung von Schaltflächen in Python verwendet. Sie können in einer .kv-Datei mit deklarativer Syntax oder programmgesteuert mit Python-Code deklariert werden. Durch die Nutzung der zahlreichen Eigenschaften und Ereignishandler der Button-Klasse können Entwickler das Erscheinungsbild und Verhalten einer Schaltfläche ändern, um sie besser an die Anforderungen des Programms anzupassen, fundierte Entscheidungen zu treffen und Dinge anders zu planen.

Schritte

Installieren Sie Kivyy: Bevor Sie mit dem Entwerfen Ihrer Anwendung beginnen, stellen Sie sicher, dass Kivy auf Ihrem Computer installiert ist. Mit pip können Sie es installieren:

pip install kivy

Erforderliche Module importieren: Importieren Sie relevante Module von Kivy in Ihr Python-Skript.

from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.boxlayout import BoxLayout

Schaltflächenereignishandler und Kivy-Anwendungsklasse erstellen: Erstellen Sie eine Methode, die aufgerufen wird, wenn die Schaltfläche gedrückt wird, und definieren Sie eine von App abgeleitete Klasse.

class MyApp(App):
   def build(self):
      layout = BoxLayout(orientation='vertical')
      button = Button(text='Click Me!', on_press=self.on_button_press)
      layout.add_widget(button)
      return layout

   def on_button_press(self, instance):
      print("Button was pressed!")

Führen Sie die Kivy-Anwendung aus

if __name__ == "__main__":
   MyApp().run()

Skript ausführen

python your_script.py

Entwerfen Sie Apps mit Kivy

Dank seiner intuitiven Syntax ermöglicht Python Kivy Entwicklern mit unterschiedlichen Fähigkeiten die einfache Erstellung dynamischer plattformübergreifender Anwendungen. Es bietet ein ansprechendes Benutzererlebnis auf verschiedenen Plattformen mit Multi-Touch-Unterstützung, einer umfangreichen Widget-Bibliothek und verlockenden Animationsfunktionen. Aus diesem Grund wird Kivy häufig zur Entwicklung einer Vielzahl innovativer Anwendungen für verschiedene Branchen und Sektoren eingesetzt.

Entwicklung von Tischtennisspielen

Das klassische Arcade-Spiel Pong ist ein toller Ausgangspunkt zum Erlernen von Python-Kivy-Spielprogrammierkenntnissen. Mit dem Open-Source-Framework Kivy können Entwickler problemlos plattformübergreifende Programme und Spiele erstellen, und Pong bietet eine hervorragende Gelegenheit, sein Potenzial zur Generierung interaktiver Spielerlebnisse zu untersuchen. Zwei Spieler kämpfen um Punkte, indem sie ihre Schläger so manipulieren, dass sie den Ball hin und her hüpfen lassen, während der Ball beschleunigt.

Schritte

  • Richten Sie die Umgebung ein: Installieren Sie alle erforderlichen Bibliotheken, einschließlich Kivy.

  • Entwerfen Sie die Spieloberfläche: Erstellen Sie eine Kivy.kv-Datei, um das Layout des Spiels festzulegen (einschließlich Schläger-, Ball- und Punkteanzeige).

  • Python-Code erstellen: Implementieren Sie Spiellogik in Python, um Brettbewegungen, Ballkollisionen und Punkteverfolgung zu verwalten.

  • Spielereignisse festlegen: Verwenden Sie die Kivy-Uhr, um den Spielstatus zu aktualisieren und Ereignisse wie Ballbewegung und Kollisionserkennung zu verwalten

  • Spielsteuerung hinzufügen: Implementieren Sie Berührungs- oder Tastaturereignisse, um die Blende zu steuern

  • Testen und Debuggen: Führen Sie das Spiel aus, testen Sie seine Funktionalität und nehmen Sie notwendige Anpassungen vor.

Erstellen Sie zwei Dateien: eine Python-Datei mit dem Namen main.py und eine Kivy-Datei mit dem Namen pong.kv

Example

的中文翻译为:

示例

main.py文件

from kivy.app import App
from kivy.uix.widget import Widget
from kivy.properties import (
   NumericProperty, ReferenceListProperty, ObjectProperty
)
from kivy.vector import Vector
from kivy.clock import Clock


class PongPaddle(Widget):
   score = NumericProperty(0)

   def bounce_ball(self, ball):
      if self.collide_widget(ball):
         vx, vy = ball.velocity
         offset = (ball.center_y - self.center_y) / (self.height / 2)
         bounced = Vector(-1 * vx, vy)
         vel = bounced * 1.1
         ball.velocity = vel.x, vel.y + offset


class PongBall(Widget):
   velocity_x = NumericProperty(0)
   velocity_y = NumericProperty(0)
   velocity = ReferenceListProperty(velocity_x, velocity_y)

   def move(self):
      self.pos = Vector(*self.velocity) + self.pos


class PongGame(Widget):
   ball = ObjectProperty(None)
   player1 = ObjectProperty(None)
   player2 = ObjectProperty(None)

   def serve_ball(self, vel=(4, 0)):
      self.ball.center = self.center
      self.ball.velocity = vel

   def update(self, dt):
      self.ball.move()

      self.player1.bounce_ball(self.ball)
      self.player2.bounce_ball(self.ball)

      if (self.ball.y < self.y) or (self.ball.top > self.top):
         self.ball.velocity_y *= -1

      if self.ball.x < self.x:
         self.player2.score += 1
         self.serve_ball(vel=(4, 0))
      if self.ball.right > self.width:
         self.player1.score += 1
         self.serve_ball(vel=(-4, 0))

   def on_touch_move(self, touch):
      if touch.x < self.width / 3:
         self.player1.center_y = touch.y
      if touch.x > self.width - self.width / 3:
         self.player2.center_y = touch.y


class PongApp(App):
   def build(self):
      game = PongGame()
      game.serve_ball()
      Clock.schedule_interval(game.update, 1.0 / 60.0)
      return game


if __name__ == '__main__':
   PongApp().run()

pong.kv 文件

#:kivy 1.0.9

<PongBall>:
   size: 50, 50 
   canvas:
      Ellipse:
         pos: self.pos
         size: self.size        

<PongPaddle>:
   size: 25, 200
   canvas:
      Rectangle:
         pos: self.pos
         size: self.size

<PongGame>:
   ball: pong_ball
   player1: player_left
   player2: player_right
   
   canvas:
      Rectangle:
         pos: self.center_x - 5, 0
         size: 10, self.height
   
   Label:
      font_size: 70  
      center_x: root.width / 4
      top: root.top - 50
      text: str(root.player1.score)
      
   Label:
      font_size: 70  
      center_x: root.width * 3 / 4
      top: root.top - 50
      text: str(root.player2.score)
   
   PongBall:
      id: pong_ball
      center: self.parent.center
      
   PongPaddle:
      id: player_left
      x: root.x
      center_y: root.center_y
      
   PongPaddle:
      id: player_right
      x: root.width - self.width
      center_y: root.center_y

输出

使用Python Kivy和.kv文件处理按钮的工作

结论

Python Kivy 作为开源框架在创建 Pong 游戏中的无缝实现就是其有效性的一个例子。事实证明,从头开始创建游戏的过程是一次无价的学习机会,让我们对用户界面设计、Python 事件处理和基本游戏开发原理有了深入的了解。

Das obige ist der detaillierte Inhalt vonArbeiten mit Schaltflächen mithilfe von Python-Kivy- und .kv-Dateien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen