-1

Is there way I can draw a rectangle on tkinter canvas by mouse clicks from right top edge to left bottom edge (unlike conventionally)? This is with reference to creating rect with mouse drag

    def on_button_press(self, event):
         # save mouse drag start position
        self.start_x = event.x
        self.start_y = event.y

        # create rectangle if not yet exist
        #if not self.rect:
        self.rect = self.canvas.create_rectangle(self.x, self.y, 1, 1, fill="black")

    def on_move_press(self, event):
            curX, curY = (event.x, event.y)

            # expand rectangle as you drag the mouse
            self.canvas.coords(self.rect, self.start_x, self.start_y, curX, curY)

    def on_button_release(self, event):
        pass
Reblochon Masque
  • 35,405
  • 10
  • 55
  • 80
zym
  • 1
  • 5
  • 1
    Your code should work except that `self.rect = self.canvas.create_rectangle(self.x, self.y, 1, 1, fill="black")` should be `self.rect = self.canvas.create_rectangle(self.start_x, self.start_y, self.start_x, self.start_y, fill="black")`. – acw1668 May 27 '20 at 02:50

1 Answers1

0

Thanks acw1668 this line is perfect solution

self.rect = self.canvas.create_rectangle(self.start_x, self.start_y, self.start_x, self.start_y, fill="black")
zym
  • 1
  • 5