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 :

Question sur une fonctionnalité du ScrolledText de tkinter


Sujet :

Python

  1. #1
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut Question sur une fonctionnalité du ScrolledText de tkinter
    Bonjour,
    Pour mon projet de spécialité ISN en fin d'année, j'avais eu l'idée avec un ami de faire une fenêtre tkinter avec à l'intérieur un scrolledtext.
    Tout marche nickel sauf une petite chose qui pourrait gêner des utilisateurs : le widget ne se focus pas de lui-même sur les éléments qui s'affichent à la fin de celui-ci, il faut utiliser la scrollbar pour y arriver.
    Je voudrais savoir s'il existe une façon plus ou moins simple ou rapide pour pouvoir faire que le widget affiche tous les derniers éléments dès qu'un nouveau arrive.
    Sue ce, à bientôt

  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
    Salut,

    Citation Envoyé par Rhiale Voir le message
    Je voudrais savoir s'il existe une façon plus ou moins simple ou rapide pour pouvoir faire que le widget affiche tous les derniers éléments dès qu'un nouveau arrive.
    Le Text widget affiche une partie du texte (par défaut, le début) et la fraction du texte affiché est retournée par .yview() (ou .xview si les lignes sont grandes). Si vous ajoutez du texte, il faudra à chaque fois forcer "afficher la fin" (car elle bouge) via .yview_moveto(1)

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

  3. #3
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup, ça marche !
    Je n'avais pas du tout pensé à utiliser les yview, alors que ça parait logique quand on y pense ^^
    Si ce n'est pas trop demander, je voudrais juste avoir une autre information sur ce même widget.
    Quand je modifie la taille de l'écriture, le widget grandit en conséquence. Comment je pourrais faire pour empêhcer ceci ?
    PS : j'utilise la méthode place pour mettre le widget, je n'ai donc pas accès à la fonction expand.

  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 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par Rhiale Voir le message
    Quand je modifie la taille de l'écriture, le widget grandit en conséquence. Comment je pourrais faire pour empêhcer ceci ?
    Si w est l'instance du scrolledtext, il faut bloquer la propagation des redimensionnements de la Frame qui contient les différents composants via w.frame.pack_propagate(False).

    Citation Envoyé par Rhiale Voir le message
    PS : j'utilise la méthode place pour mettre le widget, je n'ai donc pas accès à la fonction expand.
    Si vous utilisez .place, vous devriez savoir pourquoi (ne pas savoir se servir des geometry managers que sont .grid et .pack n'est pas une bonne raison).

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

  5. #5
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Bonjour,
    Quand j'implémente la ligne w.frame.pack_propagate(False), le widget ne s'affiche tout simplement plus, je ne comprends pas pourquoi.
    Si vous avez une autre solution, je suis preneur.

  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 776
    Points
    36 776
    Par défaut
    Citation Envoyé par Rhiale Voir le message
    Quand j'implémente la ligne w.frame.pack_propagate(False), le widget ne s'affiche tout simplement plus, je ne comprends pas pourquoi.
    Si vous avez une autre solution, je suis preneur.
    Avant de trouver une solution, il faut essayer de comprendre le problème. Et pour comprendre le problème il faut pouvoir le reproduire... essayez de réduire votre code juste assez pour "reproduire le problème" sans l'encombrer du reste.
    Si cela ne vous permet pas de comprendre ou est le soucis, on aura quelque chose à se mettre sous la dent si vous le postez.
    Exemple de code minimaliste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> from tkinter.scrolledtext import ScrolledText as ST
    >>> st = ST()
    >>> st.pack()
    >>> st.insert('end', 'abc')
    D'après ce que vous racontez, si on fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    >>> st.frame.pack_propagate(False)
    Le widget ne devrait plus s'afficher....
    Comme ce n'est pas le cas, c'est que le problème dépend du contexte (ce que vous avez fait par ailleurs avec ce widget).
    Et inutile de se prendre le chou à imaginer une autre solution sans s'assurer que vous saurez comment l'appliquer...

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

  7. #7
    Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2016
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2016
    Messages : 5
    Points : 3
    Points
    3
    Par défaut
    Même avec un tout petit code comme celui-ci, le widget ne s'affiche toujours pas, c'est donc peut-être mon IEP qui a un problème.

Discussions similaires

  1. [VB2003][ACCESS] Question sur une requete
    Par Kanie dans le forum Langage SQL
    Réponses: 3
    Dernier message: 30/03/2006, 17h25
  2. Question sur une relation ternaire dans un MCD
    Par sylsau dans le forum Schéma
    Réponses: 5
    Dernier message: 05/03/2006, 20h00
  3. Réponses: 4
    Dernier message: 20/01/2006, 16h03
  4. [Newbies] Question sur une technologie XML a utiliser
    Par superraider dans le forum Windows
    Réponses: 3
    Dernier message: 21/10/2005, 10h01
  5. [jdbc] question sur une connection
    Par berg dans le forum JDBC
    Réponses: 2
    Dernier message: 10/09/2005, 08h29

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