download tkinterrectexamole3.py
Language: Python
LOC: 89
Project Info
Dex Tracker(dex-tracker)
Server: Spider_20090401_inc
Type: filesystem
...r_beta_020.zip\dex_tracker\
   App1.py
   cabel.py
   ccsoundgrid2backup.py.py
   csdlist.py
   csdlist2.py
   csdtodot.py
   csdtoorctest.py
   csoundgrid.py
   csoundgrid2.py
   csoundgrid3.py
   csoundgrid4.py
   csoundgrid4a.py
   csoundroutines.py
   csoundroutines2.py
   ...teInstrument_Dialog1.py
   Dialog1.py
   Dialog2.py
   Drum_Machine2.py
   exampl1.py
   format.py
   Frame1.py
   Frame2.py
   Frame2old.py
   Frame3.py
   Frame4.py
   Frame5.py
   Frame6.py
   frame6n.py
   grid2.py
   grid3.py
   Gui.py
   luatest.py
   ogl2007.py
   oglexample_4.py
   oldcsoundroutines.py
   orctimetest.py
   panel_frame_maker.py
   Panel1.py
   pipe.py
   pipe1.py
   py_fltc_window.py
   python_awk_bridge.py
   run.py
   score_header_editor.py
   spreadsheetchoices.py
   testcsdlist.py
   testload.py
   tkinterrectexamole.py
   tkinterrectexamole2.py
   tkinterrectexamole3.py
   tracker.py
   tracker2.py
   tracker2.py.py
   tracker3.py
   tracker4.py
   tracker5.py
   tracker6.py
   tracker8.py
   tracker9.py
   wx_html_grid_example.py

# !/usr/bin/python
# dsimp.py -- test object dragging

import sys
import math
import Tkinter
import random

class DragCanvas(Tkinter.Frame):
    """A canvas containing 'nrect' random draggable rectangles."""
    tilecolors = (
        "cyan", "gold", "lightgreen", "green",
        "darkgreen", "lightblue", "blue",
        "darkblue", "pink", "red",
        )

    def __init__(self,master,nrect=1):
        """Create the Canvas and a bunch of rectangles."""
        Tkinter.Frame.__init__(self,master)
        self.bbox = (0,0,600,400)
        self.master = master
        self.nrect = nrect
        self.rand = random.Random()
        self.dragging = 0
        self.item = -1
        self.xbase = 0
        self.ybase = 0

        self.xscroll = Tkinter.Scrollbar(self,
            orient=Tkinter.HORIZONTAL)
        self.yscroll = Tkinter.Scrollbar(self,
            orient=Tkinter.VERTICAL)
        self.xscroll.pack(side=Tkinter.BOTTOM,fill=Tkinter.X)
        self.yscroll.pack(side=Tkinter.RIGHT,fill=Tkinter.Y)

        self.world = Tkinter.Canvas(self,
            width=self.bbox[2],
            height=self.bbox[3],
            xscrollcommand=self.xscroll.set,
            yscrollcommand=self.yscroll.set,
            borderwidth=1,
            relief=Tkinter.GROOVE)

        self.xscroll.config(command=self.world.xview)
        self.yscroll.config(command=self.world.yview)

        self.world.pack(fill=Tkinter.BOTH)

        # Mouse commands for this view.
        self.world.bind("<Button-1>",self.__doimageClick)
        self.world.bind("<ButtonRelease-1>",self.__doimageUnclick)
        self.world.bind("<B1-Motion>",self.__doimageDrag)

        for i in range(0,self.nrect):
            # Compute graphics coordinates of tile.
            # (Note first row/col offset by 1 pixel from top/left.)
            xsize = self.rand.randrange(30,80)
            ysize = self.rand.randrange(20,50)
            x1 = self.rand.randrange(0,360)
            y1 = self.rand.randrange(0,260)
            # Create a random rectangle.
            rectnum = self.world.create_rectangle(
                x1,y1,x1+xsize,y1+ysize,
                fill=self.rand.choice(DragCanvas.tilecolors))
                
            self.world.create_rectangle.text = 'test'

        # Limit scrolling in the view.
        #self.world.config(scrollregion=self.world.bbox(Tkinter.ALL))
        self.world.config(scrollregion=self.bbox)

    def __doimageClick(self,event):
        """User clicked mouse; start dragging if item found."""
        x = self.world.canvasx(event.x)
        y = self.world.canvasy(event.y)
        items = self.world.find_overlapping(x-2,y-2,x+2,y+2)
        if len(items) > 0:
            self.dragging = 1
            self.item = items[-1] # Topmost item is returned last.
            self.xbase = x
            self.ybase = y

    def __doimageUnclick(self,event):
        """User released mouse; stop dragging."""
        self.dragging = 0
        self.item = -1

    def __doimageDrag(self,event):
        """Drag an item around the map."""
        if not self.dragging:
            return
        x = self.world.canvasx(event.x)
        y = self.world.canvasy(event.y)
        self.world.move(self.item,x-self.xbase,y-self.ybase)
        self.xbase = x
        self.ybase = y


def doexit():
    """Exit the program, discarding changes."""
    sys.exit(0)


root = Tkinter.Tk()
root.geometry("400x300")
root.title("Draggable?")

mbar = Tkinter.Menu(root)
root.config(menu=mbar)
filemenu = Tkinter.Menu(mbar)
mbar.add_cascade(label="File",menu=filemenu)
filemenu.add_separator()
filemenu.add_command(label="Exit",command=doexit)

worldview = DragCanvas(root,12)
worldview.pack()
root.mainloop()

About Koders | Resources | Downloads | Support | Black Duck | Submit Project | Terms of Service | DMCA | Privacy Policy | Site Map| Contact Us