Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fenêtre adaptable sur tout type d'écran tkinter

Sujet résolu
31 décembre 2020 à 16:26:39

Bonjour à toutes et à tous,

J'ai un projet d'informatique à rendre où je dois faire une interface graphique pour piloter un drone. On doit utiliser python et avec mon groupe nous avons choisi Tkinter pour faire l'interface. J'ai plutôt bien avancé mais j'ai un problème que je n'arrive à à résoudre. En effet, mon interface marche très bien pour deux de mes ordinateurs (il y en a un avec un écran 16:9 et un autre en 4:3) mais lorsque je le partage à d'autres personnes, celle-ci bug complétement et l'affichage se fait mal. J'ai utilisé la méthode "place" pour mes widgets car les autres n'étaient pas adaptées. 

J'aurais donc souhaité savoir s'il existait une façon pour que ma fenêtre puisse s'adapter à tout type d'ordinateur et d'écran.

Merci!

  • Partager sur Facebook
  • Partager sur Twitter
31 décembre 2020 à 20:04:43

Veux-tu savoir les dimensions de l'écran en pixels?
Regardes la fonction Tk() et ses fonctions winfo_screenwidth() et winfo_screenheight()
  • Partager sur Facebook
  • Partager sur Twitter

Le Tout est souvent plus grand que la somme de ses parties.

31 décembre 2020 à 20:22:10

BaptisteDouchet a écrit:

J'aurais donc souhaité savoir s'il existait une façon pour que ma fenêtre puisse s'adapter à tout type d'ordinateur et d'écran.

C'est toute la difficulté des applications graphiques: avoir un rendu et des interactions avec l'utilisateur indépendantes des dimensions des écrans.

Pour les applications simples, si les écrans ne sont pas trop "riches", ce n'est pas si compliqué. Il faut déjà éviter .place et y préférer pack ou grid. Éventuellement jouer avec la taille des police de caractères, ajouter des ascenseurs au cas où l'affichage déborde...

  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2021 à 0:01:04

PierrotLeFou a écrit:

Veux-tu savoir les dimensions de l'écran en pixels?
Regardes la fonction Tk() et ses fonctions winfo_screenwidth() et winfo_screenheight()


Merci pour ta réponse. Je vais utiliser ces fonctions pour mon interface. Cependant, est-ce qu'il y a moyen d'utiliser ces fonctions avec la méthode "geometry()" afin d'adapter ma fenêtre en fonction du nombre de pixel sur chaque écran?

  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
2 janvier 2021 à 5:11:14

Slt,

Oui , très simplement :

from tkinter import Tk

tk = Tk()

w, h = tk.winfo_screenwidth(), tk.winfo_screenheight()
tk.geometry("%dx%d" % (w, h))

tk.mainloop()



  • Partager sur Facebook
  • Partager sur Twitter
2 janvier 2021 à 16:50:57



Diablo76 a écrit:

Slt,

Oui , très simplement :

from tkinter import Tk

tk = Tk()

w, h = tk.winfo_screenwidth(), tk.winfo_screenheight()
tk.geometry("%dx%d" % (w, h))

tk.mainloop()



Merci pour votre aide!



  • Partager sur Facebook
  • Partager sur Twitter
27 novembre 2024 à 18:57:25

Salut 

J'ai un projet que j'ai fait avec customtkinter, lorsque je mets l'exécutable dans un autre ordinateur l'interface ne s'adapte pas à l'écran, que puis-je faire ?

  • Partager sur Facebook
  • Partager sur Twitter
27 novembre 2024 à 19:57:01

@BonheurKapili Bonsoir, merci de ne pas squatter le sujet résolu des autres pour une nouvelle question, créer votre propre sujet dans le respect des règles du forum à savoir qu'il nous faut la description de votre problème et le code que vous avez écrit inséré sur le forum à l'aide de l'outil d'intégration de code soit le bouton code </>.

Je ferme ce déterrage.

Le message qui suit est une réponse automatique activée par un membre de l'équipe de modération. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Liens conseillés

  • Partager sur Facebook
  • Partager sur Twitter