Холст не упаковывается, а я хочу упаковать кадр - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь создать реагирующий размер, который можно изменять.Все хорошо, так как я добавляю frame.pack () для захвата реальных координат.Когда я делаю это, холст просто исчезает.

import tkinter as tk


class NetBuilder(object):
    root = None
    canvas = None
    frame = None
    resolution_height = 0
    resolution_width = 0
    reactangles = [
        ["statusBar", 40, 50, 60, 70],
    ]
    def on_key_pressed(self, event):
        print(event.x)
        print(event.y)
    def __init__(self):
        self.root = tk.Tk()
        self.resolution_height = self.root.winfo_screenheight()
        self.resolution_width = self.root.winfo_screenwidth()
        resolution_for_geometry = str(self.resolution_width) + "x" + str(self.resolution_height)
        self.root.geometry(resolution_for_geometry)
        self.canvas = tk.Canvas(self.root, width=self.resolution_width, height=self.resolution_height)
        self.frame = tk.Frame(self.root,width=self.resolution_width, height=self.resolution_height)
        self.frame.bind("<Button-1>", self.on_key_pressed)
        self.frame.pack()


    def net_creating(self):
        for x in self.reactangles:
            self.canvas.create_rectangle(x[1], x[2], x[3], x[4])
            self.canvas.create_oval(x[1]- 2, x[2] - 2, x[1] + 2, x[2] + 2, outline="#f00", fill="#f00", width=1)    #Left-Top-Corner
            self.canvas.create_oval(x[3] - 2, x[4] - 2, x[3] + 2, x[4] + 2, outline="#f00", fill="#f00", width=1)   #Right-Bottom-Corner
            self.canvas.create_oval(x[1] + 2, x[4] + 2, x[1] - 2, x[4] - 2, outline="#f00", fill="#f00", width=1)   #Left-Bottom-Corner
            self.canvas.create_oval(x[3] - 2, x[2] - 2, x[3] + 2, x[2] + 2, outline="#f00", fill="#f00", width=1)

        self.canvas.pack()




if __name__ == '__main__':
    x = NetBuilder()

    x.net_creating()
    x.root.mainloop()

А когда я не упаковываю, точка захвата холста работает нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...