Przykłady : Canvas w Tkinter

Prosty przykład

Kod źródłowy : canvas_simple.py

<sxh python> from tkinter import *

master = Tk()

w = Canvas(master, width=200, height=100) w.pack()

w.create_line(0, 0, 200, 100) w.create_line(0, 100, 200, 0, fill=“red”, dash=(4, 4))

w.create_rectangle(50, 25, 150, 75, fill=“blue”)

mainloop() </sxh>

Dziedziczenie z Canvas

Kod źródłowy: canvas_dots.py

<sxh python> from tkinter import *

root = Tk()

class MyCanvas(Canvas):

def __init__(self,master,*args,**kwargs):
  self.r = kwargs.pop('radius', 5)
  super().__init__(master=master,*args,**kwargs)
  self.set_bindings()
  
def set_bindings(self):
  self.bind("<Button-1>", self.draw_disc)
  self.bind("<Button-2>", self.make_red)
def draw_disc(self, event):
  x1 = event.x - self.r
  y1 = event.y - self.r
  x2 = event.x + self.r
  y2 = event.y + self.r
  self.create_oval(x1,y1,x2,y2)
def make_red(self, event):
  r = 5
  x1 = event.x - r
  y1 = event.y - r
  x2 = event.x + r
  y2 = event.y + r
  items = self.find_overlapping(x1,y1,x2,y2)
  for i in items:
    self.itemconfig(i, fill="red")

canvas=MyCanvas(root, width=500, height=500, radius=10) canvas.pack()

root.mainloop() </sxh>

  • pl/teaching/subjects/oop/lectures/gui2.txt
  • Last modified: 2017/10/02 15:37
  • (external edit)