• [^] # Re: kv

    Posté par (site web personnel, Mastodon) . En réponse à la dépêche Kivy : un cadriciel graphique unique en Python. Évalué à 3. Dernière modification le 10 mai 2025 à 15:48.

    Avec les propriétés, comme expliqué dans la dépêche, tu peux déjà faire un rendu dépendant de l'état.

    Je n'ai pas poussé l'exemple trop loin pour ne pas rendre la dépêche trop indigeste, mais tu peux utiliser des conditions dans les valeurs. Par exemple dans mon client XMPP, je m'en sers pour afficher un avatar par défaut si je n'ai pas d'avatar pour l'entité, ou pour afficher une couleur de cadenas différente en fonction de l'état du chiffrement.

    Exemple:

    
     MessAvatar:
     id: avatar
     source: root.mess_data.avatar['path'] if root.mess_data and root.mess_data.avatar else app.default_avatar
     on_press: root.chat.add_nick(root.nick)
    

    Ce code créé un widget MessAvatar, et affiche l'avatar par default si aucun avatar n'est déclaré. Il ajoute aussi un handler pour mettre le surnom de l'utilisateur en cas de clique. En python, ça serait plus long à écrire, et un peu moins lisible.

    Si tu dois ajouter/enlever dynamiquement des widgets, il faut passer par python, mais tes widgets peuvent être complètement déclarés dans kv, même si ajoutés ensuite dynamiquement.

    À l'usage c'est très pratique, et c'est pas pour rien que ce n'est pas le seul framework à faire ceci (je pense à QML avec Qt par exemple).