IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

Changement de la mise à l'échelle de la fenêtre tkinter lors de l'utilisation de matplotlib


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2019
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Changement de la mise à l'échelle de la fenêtre tkinter lors de l'utilisation de matplotlib
    Bonjour,

    J'ai une fenêtre Tkinter avec un bouton permettant d'afficher un graphique avec matplotlib.

    Aucun problème si la mise à l'échelle dans Windows est à 100 %.
    Par contre si la mise à l'échelle est à 125 %, lorsque je clique sur le bouton pour afficher le graphique, la fenêtre de Tkinter passe de 125% à 100% !

    Peux-t-on empêcher ce comportement ? Un réglage dans Windows ? Dans Tkinter ?

    Ci-dessous le code permettant d'observer le problème. Pensez à régler dans les paramètres d'affichage de Windows, la mise à l'échelle à 125% au préalable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    from tkinter import *
    import matplotlib.pyplot as plt
     
    def graphique():
        x=[1,2,3,4,5,6]
        y=[2,3,5,6,7,1]
     
        plt.figure(figsize=(8,6))
        plt.plot(x,y)
        plt.show()
     
    root = Tk()
     
    btn_graphique = Button(root, text = "Graphique", cursor='hand2', command = graphique)
    btn_graphique.place(x=10, y=10)
     
    root.mainloop()
    Merci pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 292
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 292
    Points : 36 788
    Points
    36 788
    Par défaut
    Salut,

    Citation Envoyé par Lafin Voir le message
    Peux-t-on empêcher ce comportement ? Un réglage dans Windows ? Dans Tkinter ?
    En cherchant un peu sur Internet, vous trouveriez plusieurs méthodes...
    Reste à choisir celle qui vous semble la meilleure pour votre cas (ce qu'on ne peut pas non plus faire pour vous).

    - W

  3. #3
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 006
    Points : 9 400
    Points
    9 400
    Par défaut
    hello,
    Le mot de Lafin :
    Citation Envoyé par Lafin Voir le message
    Bonjour,
    J'ai une fenêtre Tkinter avec un bouton permettant d'afficher un graphique avec matplotlib.
    Aucun problème si la mise à l'échelle dans Windows est à 100 %.
    Par contre si la mise à l'échelle est à 125 %, lorsque je clique sur le bouton pour afficher le graphique, la fenêtre de Tkinter passe de 125% à 100% !
    c'est bizarre je ne semble pas avoir ton problème ! qu'entends-tu par la fenêtre de Tkinter passe de 125 % à 100 % ? la fenêtre se réduit en dimension ? la police change de taille ?

    Testé avec windows 10 Python 3.8.5

    Ami calmant, J.P

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2019
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par jurassic pork Voir le message

    c'est bizarre je ne semble pas avoir ton problème ! qu'entends-tu par la fenêtre de Tkinter passe de 125 % à 100 % ? la fenêtre se réduit en dimension ? la police change de taille ?
    Bonjour,

    Oui la fenêtre et la police se réduisent si je règle Windows à 125%.
    J'ai ajouté deux lignes de code qui supprime ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    from ctypes import windll 
    windll.shcore.SetProcessDpiAwareness(1)
    Par contre j'ai maintenant des problèmes d'affichage sur la plupart de mes textes si je reste en 125%. Je n'ai pas dû coder correctement mon interface pour qu'elle s'adapte à toutes les mises à l'échelle. Je n'ai pas pris en compte ce problème au démarrage de mon projet, grosse erreur de ma part.

    Je vais chercher te mon côté mais si vous avez des pistes, je suis preneur.

    Merci d'avoir pris le temps de me répondre.

  5. #5
    Expert éminent
    Avatar de jurassic pork
    Homme Profil pro
    Bidouilleur
    Inscrit en
    Décembre 2008
    Messages
    4 006
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Bidouilleur
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2008
    Messages : 4 006
    Points : 9 400
    Points
    9 400
    Par défaut
    sous quelle version de windows et de python travailles-tu ? est-ce que tu lances le script à partir d'un IDE ? si oui lequel ? moi j'utilise eric6

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2019
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    J'utilise Windows 10, Python 3.7 avec la distribution EduPython 3.0.

    J'avance ! En m'inspirant de cette page j'ai bien amélioré l'affichage selon l'échelle utilisée.

    Pour le partage, l'idée est de définir une échelle pour la police en fonction de l'échelle (100%, 125%...) réglée dans Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    from ctypes import windll  
    windll.shcore.SetProcessDpiAwareness(1)
     
    # The standard DPI settings are 100%(96 DPI), 125%(120 DPI), and 150%(144 DPI).
    root = Tk() # création d'un objet fenetre
    scale = 96/root.winfo_fpixels('1i')     # Format your layout if when 96 DPI
    root.destroy()
    puis de définir une fonction qui sera appelée à chaque fois qu'on modifie la police.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    def scaled(pixels):
        return round(scale*pixels)

    Un exemple d'utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    titre = canvas.create_text (80 , 30, anchor= 'nw', text = "Le titre", font=("Roboto", scaled(20), 'bold'))
    Pour le moment, le résultat est plutôt bien, encore quelques ajustements à faire...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Changement d'hébergeur : mise à jour des DNS
    Par Flackou dans le forum Serveurs (Apache, IIS,...)
    Réponses: 4
    Dernier message: 24/09/2008, 09h39
  2. [HTML] Impression en format paysage et mise à l'échelle
    Par Bernardtapis dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 03/03/2008, 07h45
  3. Mise à l'échelle d'écran
    Par Stevens.Georges dans le forum Langage
    Réponses: 1
    Dernier message: 04/12/2007, 13h13
  4. Réponses: 2
    Dernier message: 19/09/2007, 14h17
  5. Réponses: 1
    Dernier message: 06/03/2007, 12h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo