PHP 7.4.33
Preview: canvas-mult-item-sel.py Size: 2.77 KB
//lib64/python2.7/Demo/tkinter/matt/canvas-mult-item-sel.py

from Tkinter import *

# allows moving dots with multiple selection.

SELECTED_COLOR = "red"
UNSELECTED_COLOR = "blue"

class Test(Frame):
    ###################################################################
    ###### Event callbacks for THE CANVAS (not the stuff drawn on it)
    ###################################################################
    def mouseDown(self, event):
        # see if we're inside a dot. If we are, it
        # gets tagged as CURRENT for free by tk.

        if not event.widget.find_withtag(CURRENT):
            # we clicked outside of all dots on the canvas. unselect all.

            # re-color everything back to an unselected color
            self.draw.itemconfig("selected", fill=UNSELECTED_COLOR)
            # unselect everything
            self.draw.dtag("selected")
        else:
            # mark as "selected" the thing the cursor is under
            self.draw.addtag("selected", "withtag", CURRENT)
            # color it as selected
            self.draw.itemconfig("selected", fill=SELECTED_COLOR)

        self.lastx = event.x
        self.lasty = event.y


    def mouseMove(self, event):
        self.draw.move("selected", event.x - self.lastx, event.y - self.lasty)
        self.lastx = event.x
        self.lasty = event.y

    def makeNewDot(self):
        # create a dot, and mark it as current
        fred = self.draw.create_oval(0, 0, 20, 20,
                                     fill=SELECTED_COLOR, tags=CURRENT)
        # and make it selected
        self.draw.addtag("selected", "withtag", CURRENT)

    def createWidgets(self):
        self.QUIT = Button(self, text='QUIT', foreground='red',
                           command=self.quit)

        ################
        # make the canvas and bind some behavior to it
        ################
        self.draw = Canvas(self, width="5i", height="5i")
        Widget.bind(self.draw, "<1>", self.mouseDown)
        Widget.bind(self.draw, "<B1-Motion>", self.mouseMove)

        # and other things.....
        self.button = Button(self, text="make a new dot", foreground="blue",
                             command=self.makeNewDot)

        message = ("%s dots are selected and can be dragged.\n"
                   "%s are not selected.\n"
                   "Click in a dot to select it.\n"
                   "Click on empty space to deselect all dots."
                   ) % (SELECTED_COLOR, UNSELECTED_COLOR)
        self.label = Message(self, width="5i", text=message)

        self.QUIT.pack(side=BOTTOM, fill=BOTH)
        self.label.pack(side=BOTTOM, fill=X, expand=1)
        self.button.pack(side=BOTTOM, fill=X)
        self.draw.pack(side=LEFT)

    def __init__(self, master=None):
        Frame.__init__(self, master)
        Pack.config(self)
        self.createWidgets()

test = Test()
test.mainloop()

Directory Contents

Dirs: 0 × Files: 103

Name Size Perms Modified Actions
724 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
939 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.17 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.98 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.98 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.51 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.37 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.37 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
748 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.39 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.39 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.22 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.37 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.52 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.52 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.08 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.42 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.42 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.77 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.74 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.74 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.64 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.82 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.82 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.15 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.47 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.47 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.06 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.31 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.31 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.38 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.93 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.93 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
729 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.05 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.05 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.71 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.60 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.60 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.26 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.46 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.46 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
8.90 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
4.85 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
4.85 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
3.17 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.92 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.92 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
675 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.27 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
747 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.30 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.30 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.18 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.36 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.36 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
819 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.39 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.39 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.05 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.26 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.26 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.51 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.08 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.08 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.34 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.52 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.52 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.96 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.82 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.82 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
513 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.08 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.51 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.51 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.87 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.22 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.22 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1000 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.67 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.67 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
677 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.21 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.21 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
3.67 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.14 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.14 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1020 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.68 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
815 B lrw-r--r-- 2020-04-19 21:13:39
Edit Download
1.60 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.60 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
1.29 KB lrw-r--r-- 2020-04-19 21:13:39
Edit Download
2.05 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download
2.05 KB lrw-r--r-- 2024-04-10 04:58:47
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).