web-dev-qa-db-fra.com

Comment créer une belle interface utilisateur pour les interfaces graphiques Python autonomes

Je me demande de créer une belle interface utilisateur pour mon interface graphique python.

Quelque chose comme ça:

Something like that.Comment puis je faire ça ? Dois-je utiliser des frameworks JS comme Electron?

Or like this:

Or like that

How can i do that ? Should i use JS freamworks like Electron?

7
Eren Arıcı

Les meilleures options que j'ai vues pour de "jolies" interfaces graphiques avec python sont Kivy, voir la galerie d'exemples

7
scotty3785

Cela dépend où vous voulez utiliser ces tableaux de bord, pour les applications indépendantes du périphérique pour les objets IoT (comme Raspberry Pi), je préférerais Thingsboard en tant que source ouverte. Sinon, si vous ne vous souciez pas de Losant est également un bon choix. Mais comme le mentionne scotty3785, pour les applications ne reposant pas sur le Web Kivy est un très bon choix.
Mais cela dépend de votre cas, de ce que vous choisissez.

1
user8128255

Bonjour, on dirait que ce que vous demandez est EXACTEMENT ce que pysciter vise. La seule mise en garde est le fait que cela est encore nouveau et peut-être un peu vert

https://github.com/sciter-sdk/pysciter

0
Daniel

Comme ce que les gens ont déjà dit, cela dépend de ce que vous essayez de mettre dans votre interface graphique et de l'endroit où vous voulez le placer. Mais, tous les autres programmes d'interface graphique suggérés par d'autres étaient difficiles à télécharger et tout simplement difficiles à apprendre. Je suppose que vous avez déjà utilisé tkinter (qui a une esthétique décevante) et que le format du bouton, de l’entrée et d’autres widgets prédéfinis vous échappe.

Ce que je recommande de faire n’est pas de télécharger d’autres bibliothèques et logiciels, mais plutôt de coller avec tkinter et d’utiliser uniquement les widgets label et la fonction bind, qui est détaillée ici . Ce que la fonction bind vous permet d’appeler est d’appeler une action (fonction) lorsqu’un clic de souris, une saisie au clavier, etc. Pour l'essentiel, vous pouvez créer un bouton en liant l'action de clic de souris à une étiquette. Chaque fois que vous cliquez sur l'étiquette dans l'interface graphique, la fonction est appelée. Cependant, vous ne disposez plus de la bordure laide autour du texte et cela semble plus joli. De même, vous n'avez pas besoin d'utiliser le widget d'entrée, vous pouvez lier un événement de clavier sur une étiquette vide. Ensuite, dans votre code, vous pouvez ajouter la lettre/le chiffre du clavier que vous appuyez dans la chaîne de caractères qui contrôle le texte de l'étiquette. La liste s'allonge encore et encore, mais vous n'utiliseriez essentiellement que des étiquettes, des cadres et un canevas avec la fonction bind pour créer une interface graphique plus attrayante.

Voici un exemple de la manière dont j’ai créé une grille de radiobutton plus esthétique ...  enter image description here

Avec cela, je peux personnaliser la taille des cercles pour qu'elle corresponde à celle du texte, changer la couleur des cercles sélectionnés et non sélectionnés, et changer l'espacement entre le texte et les cercles des boutons.

0
ZackBoi