Bonjour, je cherche depuis un petit moment comment faire défiler une page tkinter avec sa souris et cela sans utiliser de barre de défilement .Est que quelqu'un ici serai comment faut t'il s'y prendre Merci d’avance pour vos réponses
Tkinter est un module pour IHM simple d'utilisation, mais en ce qui concerne ses capacités à faire des manipulations complexes, il est très limité !
Pour des choses plus intéressantes à faire sur son IHM, mieux vaut utiliser PyQt ou PySide par exemple.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Moi, j'ai déjà fait ça avec Tkinter pour faire défiler les éléments d'une ListBox avec la roulette de la souris
Il faut bien sur afficher la barre, (créer un widget Scrollbar), et configurer la Listbox avec son paramètre yscrollcommand egal à nom_de_la_scrollbar.set
"Est que quelqu'un ici serai comment faut t'il s'y prendre"
"Quelqu'un saurait il comment s'y prendre ?" :-) :-)
Il faut bien sur afficher la barre, (créer un widget Scrollbar), et configurer la Listbox avec son paramètre yscrollcommand egal à nom_de_la_scrollbar.set
Du coup tu es HS par rapport à sa demande si je comprends bien ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Pour déplacer la view affichée par un widget scrollable, il y a les méthodes [x|y]view_goto/[x|y]view_scrol.
Petit exemple vite fait:
import tkinter as tk
text = tk.Text(height=10)
text.pack()
for i in range(20):
text.insert('end', f'line {i}\n')
def move_up():
text.yview_scroll(10, 'pixels')
tk.Button(text='up', command=move_up).pack()
tk.mainloop()
qui bouge la view vers le haut de 10 pixels lorsqu'on clique sur le bouton.
Au fait, pendant que je te tiens, et que l'on est dans les acronymes, qui signifie PO souvent utilisé ici pour désigner le demandeur ?
PO : Posteur Originel
HS : Hors Sujet
Phil_1857 a écrit:
En fait, dans ma solution, on affiche la barre MAIS on n'est pas obligé de l'utiliser: on peut faire défiler avec la roulette de la souris
C'est à mon sens une demande liée à l'esthétisme de l'IHM.
LilianSafar a écrit:
je cherche depuis un petit moment comment faire défiler une page tkinter avec sa souris et cela sans utiliser de barre de défilement
Qu'appelles-tu page tkinter ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Sur mon petit exemple, j'aurais pu écrire text.yview_scroll(1, 'pages'). tkinter a une idée de ce que sont des pages... peut être pas satisfaisante (si on teste) mais çà existe.
Pour déplacer la view affichée par un widget scrollable, il y a les méthodes [x|y]view_goto/[x|y]view_scrol.
Petit exemple vite fait:
import tkinter as tk
text = tk.Text(height=10)
text.pack()
for i in range(20):
text.insert('end', f'line {i}\n')
def move_up():
text.yview_scroll(10, 'pixels')
tk.Button(text='up', command=move_up).pack()
tk.mainloop()
qui bouge la view vers le haut de 10 pixels lorsqu'on clique sur le bouton.
Cette méthode fonctionne que pour l'item Text d'ailleurs la méthode .yview_scroll n'es ici pas utile pour faire défiler la page avec la souris (Text semble pouvoir être défilé de base)
ici un bous de code permettant de faire défiler Text
from tkinter import *
fenetre= Tk()
text = Text(height=10)
text.pack()
for i in range(20):
text.insert('end', f'line {i}\n')
fenetre.mainloop()
Est que du coup tu serai faire la même chose pour un objet Canvas ou tu pense que c'est impossible
fred1599 a écrit:
Tkinter est un module pour IHM simple d'utilisation, mais en ce qui concerne ses capacités à faire des manipulations complexes, il est très limité !
Pour des choses plus intéressantes à faire sur son IHM, mieux vaut utiliser PyQt ou PySide par exemple.
ok mais c'est que j'ai déjà pas mal avancé sur ce que je voulais faire donc ca m'embêterai de tout recommencer mais de toute façons si je suis bloqué je serai bien obligé de laisser tomber tkinter
(Oui je ne veux pas de barre de défilement pour une raison esthétique )
- Edité par LilianSafar 27 novembre 2021 à 19:14:03
Est que du coup tu serai faire la même chose pour un objet Canvas ou tu pense que c'est impossible
Le Canvas étant un widget scrollable,il y a les méthodes [x|y]view_goto/[x|y]view_scroll: on peut faire la même chose. Vous avez essayé quelque chose et çà ne marche pas?
LilianSafar a écrit:
ici un bous de code permettant de faire défiler Text
Chez moi votre code ne fait rien défiler du tout. D'ailleurs, il n'y a rien de codé pour que ça le fasse (comme une scrollbar par exemple).
Est que du coup tu serai faire la même chose pour un objet Canvas ou tu pense que c'est impossible
Oui, c'est sans doute faisable, tu peux scroller sans barre de défilement, "automatiquement" ou avec les touches du clavier, j'avais fait des essais ICI et LÀ. Donc sans doute aussi avec la molette de la souris, il suffit de gérer l'événement.
- Edité par LilianSafar 28 novembre 2021 à 10:22:40
Tkinter (Python)
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Découverte Python Doc Tkinter Les chaînes de caractères