No sé si esta pregunta ha duplicados , pero no he encontrado aún.

cuando el uso de python puede crear GUI rápido , pero a veces usted no puede encontrar un método para hacer lo que quieres. por ejemplo tengo el siguiente problema:

supongamos que hay un lienzo llamado K con un rectángulo con ID=1(canvas id de elemento , no de la memoria de id).

si quiero volver a dibujar el elemento que puede eliminar y, a continuación, vuelva a dibujarlo con los nuevos ajustes.

K.delete(1)
K.create_rectangle(x1,y1,x2,y2,options...)

aquí está el problema:el id de objeto de los cambios; ¿cómo puedo redibujar o mover o cambiar el tamaño del rectángulo o simplemente cambiar sin cambiar su id con un método?por ejemplo:

K.foo(1,options....)

si no hay un método , entonces debo crear una lista con el lienzo de identificadores de objeto , pero no es elegante, y no rápido.por ejemplo:

ItemIds=[None,None,etc...]
ItemIds[0]=K.create_rectangle(old options...)
K.delete(ItemIds[0])
ItemIds[0]=K.create_rectangle(new options...)

OriginalEl autor Alberto Perrella | 2012-11-03

2 Comentarios

  1. 7

    Puede utilizar Lienzo.itemconfig:

    item = K.create_rectangle(x1,y1,x2,y2,options...)
    K.itemconfig(item,options)

    Para mover el elemento, puede utilizar Lienzo.mover


    import Tkinter as tk
    
    root = tk.Tk()
    canvas = tk.Canvas(root)
    canvas.pack()
    item = canvas.create_rectangle(50, 25, 150, 75, fill="blue")
    
    def callback():
        canvas.itemconfig(item,fill='red')
    
    button = tk.Button(root,text='Push me!',command=callback)
    button.pack()
    
    root.mainloop()
    podría publicar un ejemplo sobre cómo utilizar ese método?
    actualizado con un mínimo ejemplo de trabajo.
    y si yo quería cambiar las coordenadas del rectángulo?
    He actualizado. mira Canvas.move
    También puede utilizar el coords método para cambiar las coordenadas (es decir: para cambiar el tamaño) effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.coords-method

    OriginalEl autor mgilson

  2. 1

    Busqué por los alrededores y encontrar el perfecto Tkinter método para cambiar el tamaño. el lienzo.coordenadas() hace el truco. sólo alimentar a sus nuevas coordenadas y es «bueno para ir». Python 3.4

    PS. no olvides que el primer parámetro es el id.

    por favor, explique su respuesta más

    OriginalEl autor Alan Lewit

Dejar respuesta

Please enter your comment!
Please enter your name here