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 :

deiconify - windows XP et windows 7


Sujet :

Tkinter Python

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut deiconify - windows XP et windows 7
    Bonjour,
    J'ai un programme en python avec tkinter qui peut être appelé par un programme externe. Pour afficher la fenêtre tkinter, je tape fenetre.deiconify().

    Sous windosw XP, pas de soucis, la fenêtre s'affiche correctement.

    Par contre, sous windows 7, mon instance se met à clignoter dans la barre des tâches en bas, mais la fenêtre ne s'affiche pas automatiquement. L'instance est bien appelée mais je dois cliquer sur la barre des tâches pour afficher la fenêtre.

    Avez-vous déjà été confronté à ce problème.

    Faut-il modifier des paramètres de windows 7?

    Autres?

    Merci pour vos réponses.

    Gabriel

  2. #2
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Il me semble bien avoir déjà entendu parler de ce genre de comportement, a moins que cela ne soit pour mac os.
    Modifier les paramètres me semble être du coup par coup.
    Par contre puisque cela viens du wm vous pourriez lui demander de mettre votre fenêtre au premier plan: fenetre.attributes('-topmost', 1) (à tester)

    @+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bonjour,

    Encore merci Pausekawa.

    Effectivement, la fenêtre s'affiche au premier plan; mais du coups ce sont les autres fenêtres qui ne peuvent plus s'afficher en premier plan lorsqu'elles sont appelées. Or comme je dois naviguer d'un pg à l'autre, j'aimerais qu'ils puissent s'afficher directement sans passer par la barre des tâches.
    En fait il faudrait que je puisse activer le premier plan lorsque ma fenetre est appelée puis désactiver ce premier plan pour que les autres programmes s'ils sont appelés puissent s'afficher en premier plan... mais là je ne connais pas la syntaxe.

    Gabriel

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,
    Je n'ai pas de Windows 7 pour tester mais il me semble qu'un simple fenetre.attributes('-topmost', 0) devrait le faire. A tester donc.

    @+

    Edit:
    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
    from tkinter import *
     
    def test(e=None):
        fenetre.attributes('-topmost', 0)
     
    def onview():
        fenetre.deiconify()
        fenetre.attributes('-topmost', 1)
     
    fenetre = Tk()
    canv = Canvas(fenetre, bg='white')
    canv.pack(fill='both', expand=1)
    fenetre.bind("<FocusIn>", test)
    fenetre.withdraw()
    fenetre.after(6000, onview)
    fenetre.mainloop()
    ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Impeccable.

    merci.

    gabriel

  6. #6
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Re,

    Bien content que cela fonctionne car en l’absence de Windows 7 c'est limite air coding.

    Juste pour l'information pourriez vous nous dire comment ce comporte le code suivant:
    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
    19
    20
    21
    22
    23
    24
    25
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
     
    root = Tk.Tk()
    root.withdraw()
    root.title("Tkinter démo : Center me")
    can = Tk.Canvas(root)
    can.pack()
    root.update()
    wrw = root.winfo_reqwidth() 
    wrq = root.winfo_reqheight()
    posw = (root.winfo_screenwidth() - wrw) / 2
    posh = (root.winfo_screenheight() - wrq) / 2
    root.geometry("%dx%d+%d+%d" % (wrw, wrq, posw, posh))
    root.attributes('-topmost', 1)
    root.deiconify()
    root.attributes('-topmost', 0)
    root.mainloop()
    Par rapport à celui ci
    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
    19
    20
    21
    22
    23
    #!/usr/bin/env python
    # -*- coding: UTF-8 -*-
    #
    #
    try:
        import Tkinter as Tk
    except:
        import tkinter as Tk
     
     
    root = Tk.Tk()
    root.withdraw()
    root.title("Tkinter démo : Center me")
    can = Tk.Canvas(root)
    can.pack()
    root.update()
    wrw = root.winfo_reqwidth() 
    wrq = root.winfo_reqheight()
    posw = (root.winfo_screenwidth() - wrw) / 2
    posh = (root.winfo_screenheight() - wrq) / 2
    root.geometry("%dx%d+%d+%d" % (wrw, wrq, posw, posh))
    root.deiconify()
    root.mainloop()
    ?

    @+

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2014, 12h02
  2. Vive les Windows MP : nouveau Windows Media Player 11 :
    Par ArHacKnIdE dans le forum Windows XP
    Réponses: 4
    Dernier message: 19/04/2006, 20h26
  3. fenetre windows "sécurité de windows" lors du ctrl
    Par Mut dans le forum Windows XP
    Réponses: 7
    Dernier message: 23/03/2006, 22h37
  4. [Systeme] Windows XP et Windows 98
    Par kamal101 dans le forum Windows XP
    Réponses: 6
    Dernier message: 18/11/2005, 19h26
  5. [Debutant] [Windows] livre programmation windows
    Par orelero dans le forum Windows
    Réponses: 8
    Dernier message: 11/02/2005, 13h32

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