Seite 1 von 1
Rechtecke verschieben
Verfasst: Freitag 6. Juni 2014, 11:11
von duodiscus
Hallo zusammen, da die andere Frage möglicherweise etwas zu komplex gefragt war, versuche ich es jetzt in einer kleinen:
Wie kann ich das erzeugte Rechteck umpositionieren?!
Code: Alles auswählen
from tkinter import *
def CBKnopf():
groesse = 10, 10, 35, 25
Rechteck1 = ZF.create_rectangle(groesse, fill = 'red')
Rechteck1.place(x=200,y=300)
geht nicht, denn da kommt: >>> AttributeError: 'int' object has no attribute 'place'
Kann mir da jemand helfen? Danke!
Re: Rechtecke verschieben
Verfasst: Freitag 6. Juni 2014, 11:43
von BlackJack
@duodiscus: Die Grafikelemente sind keine Widgets. Nachträglich verändern kann man die über die entsprechenden Methoden auf dem `Canvas`-Objekt denen man die ID von dem Grafikelement übergeben muss.
http://effbot.org/tkinterbook/canvas.htm hat geschrieben:Note that items added to the canvas are kept until you remove them. If you want to change the drawing, you can either use methods like
coords,
itemconfig, and
move to modify the items, or use
delete to remove them.
Re: Rechtecke verschieben
Verfasst: Freitag 6. Juni 2014, 18:41
von wuf
Hi duodiscus
Hierzu ein Snippet:
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from functools import partial
try:
#~~ For Python 2.x
import Tkinter as tk
except ImportError:
#~~ For Python 3.x
import tkinter as tk
def move_canvas_obj(canvas, obj_id, xdelta, ydelta):
canvas.move(obj_id, xdelta, ydelta)
def main():
app_win = tk.Tk()
canvas = tk.Canvas(app_win, bg='yellow')
canvas.pack()
rectangle = canvas.create_rectangle(10, 10, 50, 50, outline='red',
fill='red')
tk.Button(app_win, text='Move', command=partial(move_canvas_obj,
canvas, rectangle, 100, 100)).pack()
app_win.mainloop()
main()
Gruss wuf
