tutorial poner plantillas imagen fondo examples español python pygame attributeerror

python - plantillas - poner imagen en django



¿Cómo resuelvo un error de atributo? (1)

Entonces, como dije antes, mi código (o mi proyecto actual en el que estoy trabajando) está plagado de errores. Hasta ahora, al menos, he resuelto una docena de errores o más y, sinceramente, me rindo. Quiero decir, Dios sabe cuántos más hay.

El problema actual que estoy teniendo es un AttributeError que, en mi opinión, es uno de los errores más fáciles de solucionar, pero parece que he pasado para completar el modo spaghetti y no tengo ni idea de cómo solucionar el problema.

{El error en sí:

Traceback (most recent call last): File "C:/Users/Burak/Desktop/boxtrial.py", line 87, in <module> myScreen.addPane("1") File "C:/Users/Burak/Desktop/boxtrial.py", line 67, in addPane myPane.drawPane() File "C:/Users/Burak/Desktop/boxtrial.py", line 19, in drawPane self.Screen.blit(self.font.render(textToDisplay, True, (black)), (250, 115)) AttributeError: ''Pane'' object has no attribute ''Screen''

}

Voy a enumerar el código a continuación, pero me siento como si debería explicar lo que estoy tratando de hacer para que tenga algún tipo de comprensión del código. Básicamente en el ciclo principal llamo a la "Pantalla de clase" que ayuda a crear una pantalla de PyGame que aparece una vez ejecutada. En esa pantalla, intento que aparezcan rectángulos en la pantalla en posiciones fijas (las coordenadas son específicas pero las que uso en el código son solo para fines de prueba). Luego tengo otra clase que se llama "Pane" y esta clase está allí para que pueda dibujar muchas instancias del panel de la clase dentro de la pantalla (si eso tiene sentido).

Si alguien puede ayudarme a deshacerse del error que sería de gran ayuda, pero si crees que esta no es una buena manera de resolver el problema, por favor, sé mi invitado para presentarme o enseñarme una mejor manera de hacerlo la misma cosa.

{El código:

import pygame import sys from pygame.locals import * white = (255,255,255) black = (0,0,0) objs = [] MAIN_BUTTON = 1 class Pane(): def __init__(self, textToDisplay, coordinates, screen): self.textToDisplay = textToDisplay self.coordinates = coordinates self.screen = screen def drawPane(self): self.Screen.blit(self.font.render(textToDisplay, True, (black)), (250, 115)) pygame.draw.rect(self.screen, (black), self.coordinates, 2) pygame.display.update() class Screen(): #constants/array(?) outlining the x,y boundaries of each of x10 panes #Note to self - Remember to change co-ordinate values NoOfPanes = 0 Panes = [] def __init__(self): pygame.init() pygame.display.set_caption(''Box Test'') self.font = pygame.font.SysFont(''Arial'', 25) Screen = pygame.display.set_mode((1000,600), 0, 32) self.screen = Screen self.screen.fill((white)) pygame.display.update() def addPane(self, textToDisplay): paneLocs = [(175, 75, 200, 100), (0, 0, 200, 100), (600, 400, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100), (175, 75, 200, 100) ] if self.NoOfPanes > 10: print("Limit Reached") else: myPane = Pane(textToDisplay, paneLocs[self.NoOfPanes], Screen) myPane.drawPane() self.NoOfPanes = self.NoOfPanes + 1 pygame.display.update() def mousePosition(self): global clickPos global releasePos for event in pygame.event.get(): if event.type == MAIN_BUTTON: self.Pos = pygame.mouse.get_pos() return MAIN_BUTTON else: return False if __name__ == ''__main__'': myScreen = Screen() myScreen.addPane("1") myScreen.addPane("2") myScreen.addPane("3") myScreen.addPane("4") while True: ev = pygame.event.get() for event in ev: if event.type == pygame.MOUSEBUTTONUP: posx,posy = pygame.mouse.get_pos() if (posx >= 175 and posx <= 375) and (posy >= 75 and posy <= 175): print("BOB") #Bob was there just for test purposes for event in pygame.event.get(): if event.type == pygame.QUIT: pygame.quit(); sys.exit();


Arregla tu caso

class Pane(): def __init__(self, textToDisplay, coordinates, screen): ... self.screen = screen def drawPane(self): self.Screen.... # <<< HERE