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

Python Discussion :

Redimensionner de manière proportionnelle, une fenêtre principale et tous les widgets qu'elle contient [Python 3.X]


Sujet :

Python

  1. #1
    Membre averti Avatar de Kaa'dem-2072
    Homme Profil pro
    Biogärtner
    Inscrit en
    Décembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Biogärtner
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 24
    Par défaut Redimensionner de manière proportionnelle, une fenêtre principale et tous les widgets qu'elle contient
    Bonjour,

    Le programme que j'ai écrit convient à l'écran 22'' de mon PC. La fenêtre principale fait 1300 de largeur et 800 de hauteur. Mais elle est trop grande pour mon ordinateur portable. J'ai donc créé un sous-onglet réduire/agrandir pour faire du redimensionnement.

    Je voudrais savoir quelle est la meilleure manière de procéder pour arriver à mes fins. J'avais l'intention de créer deux classes "Reduire" et "Agrandir" mais avant de bâtir une usine à gaz, j'aimerais savoir s'il existe d'autres techniques plus spécifiques.

    Merci d'avance.

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par Kaa'dem-2072 Voir le message
    Je voudrais savoir quelle est la meilleure manière de procéder pour arriver à mes fins. J'avais l'intention de créer deux classes "Reduire" et "Agrandir" mais avant de bâtir une usine à gaz, j'aimerais savoir s'il existe d'autres techniques plus spécifiques.
    Le plus simple est de laisser au GUI d'utiliser ses valeurs par défaut ou de travailler en fonction des dimensions de l'écran pour un minimum de widgets (la fenêtre principale par exemple).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti Avatar de Kaa'dem-2072
    Homme Profil pro
    Biogärtner
    Inscrit en
    Décembre 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Biogärtner
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2015
    Messages : 24
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Le plus simple est de laisser au GUI d'utiliser ses valeurs par défaut ou de travailler en fonction des dimensions de l'écran pour un minimum de widgets (la fenêtre principale par exemple).

    - W
    Bonjour,

    J'ai créé deux variables ("h" et "w") qui stocke des coefficients de redimensionnement pour la hauteur et la largeur.
    Par exemple pour le frame principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.main_frame = Frame(height = h*100, width= w*100)
    Pour ce que je veux faire, c'est suffisant. Le plus difficile a été de "diffuser" ces variables correctement dans tous mes modules et avec toutes mes classes qui s'enchevêtrent dans un joyeux fouillis .
    Du coup, j'ai utilisé une technique dont je me demande si elle est bien conventionnelle.
    J'ai enregistré la valeur des variables h et w dans des fichiers .txt à l'endroit où elles ont été initialisées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    h = 8 	# height coefficient
    w = 13	# width coefficient
     
    file_h = open('h', 'w')
    file_h.write(str(h))
    file_h.close() 
    height = H_W(h, w)
    h = height.new_value_h()
     
    file_w = open('w', 'w')
    file_w.write(str(w))
    file_w.close()
    width = H_W(h,w)
    w = width.new_value_w()
    Et ensuite quand j'ai voulu les modifier à un autre endroit du programme, j'ai ouvert le fichier et j'ai modifié. J'ai, pour ainsi dire, "shunté" les paramètres de la classe à laquelle je n'arrivais pas à passer mes valeurs h et w. Mais quelque chose me dit que c'est un peu tordu...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def reduction(self) :
    		"Méthode de réduction de la fenêtre principale et des widgets qu'elle contient"
    		self.h = 7
    		self.w = 12
    		self.file_h = open('h', 'w')
    		self.file_h.write(str(self.h))
    		self.file_h.close()
    		self.file_w = open('w', 'w')
    		self.file_w.write(str(self.w))
    		self.file_w.close()
    		self.main_frame.configure(height=self.h*100, width=self.w*100)
    		self.home = Home(self.main_window, self.main_frame, self.tabs, self.photos[0], self.color, self.h, self.w)
    		self.home.home()
    Bonne journée à vous.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par Kaa'dem-2072 Voir le message
    J'ai créé deux variables ("h" et "w") qui stocke des coefficients de redimensionnement pour la hauteur et la largeur.
    Par exemple pour le frame principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    self.main_frame = Frame(height = h*100, width= w*100)
    Pour ce que je veux faire, c'est suffisant. Le plus difficile a été de "diffuser" ces variables correctement dans tous mes modules et avec toutes mes classes qui s'enchevêtrent dans un joyeux fouillis.
    Imaginez le script/module globs.py comprenant les déclarations suivantes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    height = ...
    width = ...
    Dans tous les modules qui auront besoin de ces "variables", il suffira d'écrire:
    pour qu'existe une variable globale "globs" donnant accès aux attributs globs.width, globs.height

    Reste à initialiser ces "attributs" en fonction des dimensions de l'écran retournées par:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> root = tk.Tk()
    >>> root.winfo_screenwidth()
    1600
    >>> root.winfo_screenheight()
    1140
    >>>
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/08/2008, 21h38
  2. Comment insérer des fenetres (JFrames) à l'intérieur d'une fenêtre principale?
    Par smendou dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 06/06/2008, 22h51
  3. Actualisation d'une fenêtre principale
    Par Trebor_ dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2008, 09h34
  4. Créer une fenêtre principale
    Par spide dans le forum Débuter
    Réponses: 2
    Dernier message: 22/02/2008, 16h23
  5. Redimensionner la taille d'une fenêtre
    Par luchio dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 28/05/2007, 11h55

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