Нужна помощь в создании функции и как передать параметры, прочитанные из файла - PullRequest
0 голосов
/ 25 апреля 2019

Я пытаюсь создать функцию пакета, которая будет иметь два параметра в этом случае 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()
...