Я пытаюсь создать функцию пакета, которая будет иметь два параметра в этом случае allRect и canvasSize. Первым параметром будет список объектов Rectangle, которые я создал в своей основной функции после чтения из файла. Второй будет кортеж, содержащий высоту и ширину. Моя функция тогда взяла бы список и определила местоположение для каждого прямоугольного объекта, который будет помещен на холст, не перекрывая друг друга. Моя проблема в том, как мне дать моей функции список прямоугольников и размер холста из моей основной функции?
Если у вас есть какие-либо вопросы, на которые вы должны ответить, я сделаю все возможное, чтобы вы могли лучше понять.
from tkinter import *
import sys
import os
root = Tk()
class CustomCanvas:
def createcanvas(self, height, width): #constructor, 2 arguments height and width of type int
self.height = height
self.width = width
self.canvas = Canvas(width=width, height=height)
return (self.canvas)
class Rectangle:
def __init__(self, height, width, x = 0, y = 0): #constructor, takes in 4 arguments height, width, x, and y where x and y have default parameters of 0
self.height = height
self.width = width
self.x = x
self.y = y
def pack(allRect, canvasSize):
def main():
fp = open("25PrecentFill.txt","r+")
canvas_size = fp.readline()
dimensions = [x.strip() for x in canvas_size.split(',')]
canvas = CustomCanvas
canvas = canvas.createcanvas(root, dimensions[0], dimensions[1])
canvas.pack()
rectangles = fp.readlines()
sizes = [i.split(',',1) for i in rectangles]
rList = []
count = 0
for y in sizes:
y[1] = y[1].rstrip()
rect = Rectangle(y[0], y[1])
rList.append(rect)
count = count + 1
fp.close()
arrayColors = ["blue", "green", "red", "purple", "yellow", "orange"]
if __name__ == '__main__':
main()