es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear una barra de desplazamiento en entrada con canvas, Python Tkinter.

Estoy tratando de poner una barra de desplazamiento en un entry que se creó en un canvas.
He intentado este código

from tkinter import *

<p>root = Tk()
root.geometry('400x600')
root.resizable(0,0)</p>

<p>page = Canvas(root, width=400, height=600, bd=0, highlightthickness=0,scrollregion=(0,0,500,500))
MyImage1 = PhotoImage(file='Study With4.png')
CanvasImage = page.create_image(0,0,image= MyImage1, anchor='nw')
entry =Text(page,height=29,width =46,wrap=WORD,bg='#F8F8F8')
scroll = Scrollbar(entry, orient=VERTICAL)
scroll.pack(side=RIGHT, fill=Y)
scroll.config(command=page.yview)
page.config(yscrollcommand=scroll.set)
page.create_window(200,285, window=entry)
page.pack()
mainloop()

pero no funciona y no sé cuál es el problema.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece haber un error en el código donde la barra de desplazamiento se está adjuntando al widget de entrada. Debería adjuntarse al lienzo en su lugar, ya que la entrada está dentro del lienzo.

    Aquí está el código corregido:

    from tkinter import *
    
    root = Tk()
    root.geometry('400x600')
    root.resizable(0,0)
    
    page = Canvas(root, width=400, height=600, bd=0, highlightthickness=0,scrollregion=(0,0,500,500))
    MyImage1 = PhotoImage(file='Study With4.png')
    CanvasImage = page.create_image(0,0,image= MyImage1, anchor='nw')
    entry = Text(page,height=29,width =46,wrap=WORD,bg='#F8F8F8')
    scroll = Scrollbar(page, orient=VERTICAL)
    scroll.pack(side=RIGHT, fill=Y)
    scroll.config(command=page.yview)
    page.config(yscrollcommand=scroll.set)
    page.create_window(200,285, window=entry)
    page.pack()
    mainloop()
    

    En este código, la barra de desplazamiento está adjunta al lienzo ‘page’ en lugar del widget de entrada ‘entry’. Esto permitirá que la barra de desplazamiento funcione correctamente en todo el lienzo, incluyendo el widget de entrada.

Comments are closed.