Vue d'ensemble
Kivy 2.0, publié le 8 février 2021, abandonne le support de Python 2 et introduit un nouveau backend de fenêtrage. C'est une version de modernisation majeure du framework multi-plateforme.
Fonctionnalités principales
Python 3 uniquement
Kivy 2.0 requiert Python 3.6 au minimum. L'abandon de Python 2 a permis de nettoyer le code base, d'utiliser les f-strings, les annotations de type et les fonctionnalités modernes de l'écosystème Python.
python
from kivy.app import App
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.button import Button
from kivy.uix.label import Label
class Compteur(App):
def build(self):
self.compte = 0
layout = BoxLayout(orientation='vertical')
self.label = Label(
text=f'Compteur : {self.compte}',
font_size='32sp',
)
bouton = Button(
text='Incrémenter',
on_press=self.incrementer,
)
layout.add_widget(self.label)
layout.add_widget(bouton)
return layout
def incrementer(self, instance):
self.compte += 1
self.label.text = f'Compteur : {self.compte}'
Compteur().run()
Nouveau backend de fenêtrage
Un nouveau provider de fenêtrage basé sur SDL2 est disponible, offrant une meilleure gestion du multi-écran, du HiDPI et des événements d'entrée. Ce backend remplace progressivement les anciens providers.
python
# Configuration du backend de fenêtrage
# Dans le fichier ~/.kivy/config.ini :
# [graphics]
# window_state = visible
# width = 800
# height = 600
from kivy.config import Config
# Configuration par code
Config.set('graphics', 'width', '1024')
Config.set('graphics', 'height', '768')
Config.set('graphics', 'resizable', '1')
# Le backend SDL2 est sélectionné automatiquement
# sur les plateformes supportées (Linux, macOS, Windows)
from kivy.core.window import Window
print(f'Taille : {Window.size}')
print(f'DPI : {Window.dpi}')
