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 :

Récupérer contenu d'un widget Text + centrer une image dans un canvas


Sujet :

Tkinter Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut Récupérer contenu d'un widget Text + centrer une image dans un canvas
    Bonjour,
    je travaille actuellement une interface graphique avec Tkinter et j'ai deux questions.

    1) J'aimerais récupérer le contenu d'un widget Text. J'ai essayé la commande .get() mais apparemment cela ne fonctionne pas alors que cette méthode fonctionne pour les Entry.

    2) J'ai défini un canvas d'une certaine dimension dans lequel je souhaite affiché une image. Existe il une commande qui permette d'afficher l'image au centre du canvas de manière à ce que l'image soit toujours au centre du canvas même quand on change l'image.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def affiche(i,canvas):
        canvas.create_image(0, 0, anchor=NW, image=i)
     
    photo = Image.open("image.jpg")
    photo.thumbnail((475, 350), Image.BICUBIC)
    Image = ImageTk.PhotoImage(photo)
    canvas = Canvas(fenetre,height=350,width=480,bg='#00ff00')
    canvas.place(x=510, y=95)
    Button(fenetre, text="Générer l'image", command=lambda : affiche(Image, canvas)).place(x=700, y=50)
    SVP
    Merci

  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 776
    Points
    36 776
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    1) J'aimerais récupérer le contenu d'un widget Text. J'ai essayé la commande .get() mais apparemment cela ne fonctionne pas alors que cette méthode fonctionne pour les Entry.
    Elle fonctionne aussi avec le widget Text mais comme il y a plus d'informations, il faut être plus précis:
    Dans les réponses de ce post récent, vous y trouverez les URL de documentations de Tkinter en Français.
    L'intérêt d'un forum, c'est aussi de pouvoir profiter des réponses faites à d'autres.

    2) J'ai défini un canvas d'une certaine dimension dans lequel je souhaite affiché une image. Existe il une commande qui permette d'afficher l'image au centre du canvas de manière à ce que l'image soit toujours au centre du canvas même quand on change l'image.
    Pas à ma connaissance mais:
    1. Calculer le centre du canvas: cx, cy.
    2. Récupérer les dimensions de l'image: dx, dy.
    3. Afficher l'image en x0, y0 tels que x0 = fx(cx, dx) et y0 = fy(cy, dy)

    où fx et fy sont des fonctions linéaires simples n'est quand même pas insurmontable.

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

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Merci, je vais tester ça !
    Quelqu'un à une réponse à ma deuxième question ?

    Autre chose : est-il possible sur Tkinter de rentrer l'addresse d'un site internet (en simple label) de telle sorte que lorsque l'on clic sur cette adresse, cela ouvre la page internet en question (lien direct vers le site).

    SVP
    Merci

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Avril 2014
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2014
    Messages : 27
    Points : 9
    Points
    9
    Par défaut
    Je me rends compte que j'ai encore deux autres questions :
    - Peut-on associer deux commande à un même bouton ? J'ai essayé en mettant des virgules, ca n'a pas l'air de marcher.
    - Comment faire pour ne souligner qu'une partie d'un texte (label) ? La méthode du "underline = " permet de souligner 1 caractère mais je veux souligner les 3 premiers (sur 8). J'ai essayé underline = 0,1,2 mais cela ne fonctionne pas.

    SVP
    merci

  5. #5
    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 776
    Points
    36 776
    Par défaut
    Citation Envoyé par MVP Chacal Voir le message
    - Peut-on associer deux commande à un même bouton ? J'ai essayé en mettant des virgules, ca n'a pas l'air de marcher.
    C'est possible mais il faut prendre le temps de comprendre les détails de la commande bind.
    A votre niveau, vous pouvez vous contentez d'appeler une "commande" qui appellera les deux autres ou une liste de...

    - Comment faire pour ne souligner qu'une partie d'un texte (label) ? La méthode du "underline = " permet de souligner 1 caractère mais je veux souligner les 3 premiers (sur 8). J'ai essayé underline = 0,1,2 mais cela ne fonctionne pas.
    underline permet de préciser un raccourci clavier. Ça va souligner ce caractère là mais si vous espériez que çà souligne une partie du texte, c'est rapé. C'est un "faux ami". Impossible de préciser police et attributs d'un sous-ensemble de caractères affichés en dehors du widget Text.

    est-il possible sur Tkinter de rentrer l'adresse d'un site internet (en simple label) de telle sorte que lorsque l'on clic sur cette adresse, cela ouvre la page internet en question (lien direct vers le site).
    Vous pouvez demander à Tk de lancer votre navigateur favori pour afficher la page.
    Les échanges seront minimaux mais le basique "fonctionne".
    Essayez:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import webbrowser; url = ...; webbrowser.open(url);
    note: on peut faire mieux mais c'est plus compliquécher.

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

Discussions similaires

  1. [POI] Centrer une image dans une cellule Excel
    Par gojira dans le forum Documents
    Réponses: 0
    Dernier message: 07/01/2010, 18h09
  2. [CakePHP] [CakePHP] Centrer une image dans une cellule
    Par lesanglier dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 20/10/2009, 21h42
  3. Centrer une image dans un TextArea
    Par elManu dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 03/03/2009, 11h12
  4. centrer une image dans une cellule d'un tableau
    Par oceane751 dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/08/2008, 21h07
  5. Centrer une image dans un tableau de Report Viewer
    Par RomainDotNet dans le forum VB.NET
    Réponses: 0
    Dernier message: 18/07/2008, 14h15

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