fix image view exceptions raised

This commit is contained in:
Klemek
2021-08-27 10:20:11 +02:00
parent 6b1ac3b46e
commit 80e157c86f
+10 -4
View File
@@ -18,10 +18,14 @@ class ImageView(ttk.Frame):
self.canvas.place(in_=self, anchor="c", relx=0.5, rely=0.5)
self.canvas.bind("<Button-1>", self.click_canvas_b1)
self.canvas.bind("<B1-Motion>", self.click_canvas_b1)
self.canvas.bind("<ButtonRelease-1>", self.update)
self.canvas.bind(
"<ButtonRelease-1>", lambda event: self.update(self.current_image)
)
self.canvas.bind("<Button-3>", self.click_canvas_b3)
self.canvas.bind("<B3-Motion>", self.click_canvas_b3)
self.canvas.bind("<ButtonRelease-3>", self.update)
self.canvas.bind(
"<ButtonRelease-3>", lambda event: self.update(self.current_image)
)
self.canvas.bind("<MouseWheel>", self.zoom_canvas)
self.canvas.bind("<Button-4>", self.zoom_canvas_up)
@@ -41,12 +45,12 @@ class ImageView(ttk.Frame):
background="white",
)
else:
try:
self.canvas.configure(
width=(image.width * self.draw_scale),
height=(image.height * self.draw_scale),
background="white",
)
# TODO fix / handle, "bad screen distance "??????""
self.canvas.delete("all")
for x in range(image.width):
for y in range(image.height):
@@ -59,6 +63,8 @@ class ImageView(ttk.Frame):
fill="black",
outline="",
)
except tk.TclError:
pass
self.current_image = image
def click_canvas_b1(self, event):
@@ -67,7 +73,7 @@ class ImageView(ttk.Frame):
def click_canvas_b3(self, event):
self.click_canvas(False, event)
def click_canvas(self, value, event):
def click_canvas(self, value: bool, event):
if self.current_image is None:
return
x = int(event.x / self.draw_scale)