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 :

Affichage can.create_text altéré par déplacement de can.create_image


Sujet :

Tkinter Python

  1. #1
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut Affichage can.create_text altéré par déplacement de can.create_image
    Bonjour,
    J'ai un souci d'affichage avec un programme . Lorsque mon image passe sur mon texte, l'affichage de celui ci peut s'altérer (disparaître à certain endroit quitte à reparaître lors d'un autre passage de mon image sur le texte)
    ci joint un code simplifié(par rapport à mon programme) représentatif de mon problème .
    Merci de l'aide, que vous pourriez m'apporter.

    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
    26
    import tkinter as tk
     
    fen = tk.Tk()
    can=tk.Canvas(fen,width=1680,height=1080,background='black')
    can.pack()
    mots = can.create_text(int(960), int(100),
                           text="XXXsalut mon grandXXX",
                           font=("Courrier", int(100), 'bold'),
                           anchor='center', fill="red")
    photo = tk.PhotoImage(file="/tmp/image.png")
    bidulle = can.create_image(0,0,anchor= 'nw', image=photo)
     
    while True:
        compteur = 1300
        while compteur:
            can.move(bidulle,2,0)
            fen.update()
     
            compteur -= 2
     
        compteur = 1300
        while compteur:
            can.move(bidulle,-1,0)
            fen.update()
     
            compteur -= 1
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par Hominidé Voir le message
    J'ai un souci d'affichage avec un programme . Lorsque mon image passe sur mon texte, l'affichage de celui ci peut s'altérer (disparaître à certain endroit quitte à reparaître lors d'un autre passage de mon image sur le texte)
    Le texte et l'image sont affiché l'un après l'autre.
    Si l'image recouvre tout ou partie du texte, on n'en verra qu'une partie.

    Par défaut, l'ordre dans lequel sont affichés les différents objets sera l'ordre de création et peut être modifié via les raise/lower.

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

  3. #3
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par wiztricks Voir le message




    Si l'image recouvre tout ou partie du texte, on n'en verra qu'une partie.


    - W
    Oui c'est évident.
    Je me suis mal exprimé. Mon souci c'est qu'après que mon image a recouvert le texte puis qu'elle se positionne ailleurs, le texte ne se réaffiche pas intégralement .
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Mon souci c'est qu'après que mon image a recouvert le texte puis qu'elle se positionne ailleurs, le texte ne se réaffiche pas intégralement.
    Dans votre boucle "while True", ajoutez un time.sleep(x) avec x choisi dans 0.01 et 0.05 et augmentez en proportion les déplacements de la figure.
    Normalement, vous n'y verriez pas de changement (à cause de la persistance rétinienne).
    Et vous laisseriez la partie graphique terminer ses mises à jour.

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

  5. #5
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    Même avec un time.sleep très long, cela ne change rien.

    Je remarque que pour un font=("Courrier", 20, 'bold'), je ne rencontre aucun problème d'affichage.
    Pour font=("Courrier", 30, 'bold'), un bug sur une lettre.
    Et pour font=("Courrier", 100, 'bold') toutes lettres après le passage le l'image sont troquées :Nom : imagetronquée.png
Affichages : 133
Taille : 9,7 Ko
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Je suis désolé mais sans sleep çà fonctionne très bien chez moi.
    Vous êtes sous quel OS et quelle version de Pyhon?

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

  7. #7
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    Je suis avec Python 3.6.9 sous ubuntu 18.04 lts...
    J'ai fait un essai en pixelisant le texte en png et là je ne rencontre aucun soucis ...
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  8. #8
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    J'ai fait un essai sur un autre machine avec le même OS et la même version de python.
    Je constate le même défaut d'affichage... ce qui quelque part me rassure car j'ai eu un instant peur que le problème soit intrinsèque à ma machine achetée depuis peu d'occasion.

    Si chez vous tout s'affiche correctement et que mon code soit correct, il s'agirait d'un bug affectant tkinter avec ma version de python? Vous utilisez quelle version de python/os ?
    Merci pour votre aide
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    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 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par Hominidé Voir le message
    Vous utilisez quelle version de python/os ?
    J'ai testé sur Python3.8, Windows7.
    (et j'ai pas le temps de démarrer un environnement Ubuntu pour voir d'ici ce soir).

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

  10. #10
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    D'accord.
    Bonne soirée
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonsoir ,

    Si cela peut vous aider j'ai testé le code original sans time.sleep et cela fonctionne également chez moi (python 3.7 via PyCharm et mac OS 10.15)

  12. #12
    Membre expérimenté
    Avatar de MPython Alaplancha
    Homme Profil pro
    Paysan à 3 francs six sous
    Inscrit en
    Juin 2018
    Messages
    880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Paysan à 3 francs six sous
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Juin 2018
    Messages : 880
    Points : 1 542
    Points
    1 542
    Billets dans le blog
    4
    Par défaut
    Merci,
    Je vais enquêter sur le sujet...
    Ceci dit mon programme initial doit pouvoir tourner sur ubuntu 18.04 avec sa version de python 3.6.9 utilisée par défaut, car il sera partagé avec d'autre machine de cette distribution.
    Dans mon programme le texte n'étant pas dynamique, je peux toujours le transformer en image. Mais bon c'est du bricolage. Je déteste les situations où ça devrait marcher et où ça ne marche pas.
    #Rien de nouveau sous le soleil, tout est vanité comme courir après le vent!
    Developpement pour Android avec Python3/Kivy/Buildozer

Discussions similaires

  1. arrêter l'affichage d'un ShowMessage par prog
    Par kalou26 dans le forum C++Builder
    Réponses: 10
    Dernier message: 13/06/2006, 16h58
  2. Réponses: 2
    Dernier message: 26/04/2006, 22h44
  3. Affichage en ligne 3 par 3
    Par yoan_111 dans le forum ASP
    Réponses: 1
    Dernier message: 18/04/2006, 23h29
  4. Réponses: 2
    Dernier message: 15/03/2006, 09h44
  5. pb affichage des photos incorporées par balises html
    Par laville dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 01/04/2005, 11h47

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