Bonjour a tous,
j'ai un soucis d'importation je travaille actuellement avec Pycharm
J'ai 3 fichier main.py, mainProgram.py, classButton.py tous les 3 dans le même dossier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 #fichier main.py from mainProgram import * import pygame as mainFrame running = True while running: for event in mainFrame.event.get(): pass if event.type == mainFrame.QUIT: running = False elif event.type == mainFrame.MOUSEMOTION: (mainProgram.mouseX, mainProgram.mouseY) = mainFrame.mouse.get_pos() elif event.type == mainFrame.MOUSEBUTTONDOWN: mainProgram.mousePressed() elif event.type == mainFrame.MOUSEBUTTONUP: mainProgram.mouseReleased() mousePresseded = mainFrame.mouse.get_pressed() mainProgram.buttonUpdate() mainProgram.mainLoop() mainFrame.display.flip()
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 #fichier mainProgram.py from classButton import button import pygame as programFrame prefButton = button("preference", (512), (300), 64, 64, "RECT", None, "ONOFF") #addLightButton = button("addLight", 512, 300, 150, 100, "RECT", None, "PUSH") #gpioPinButton = button("gpioPinButton", 512, 300, 150, 100, "RECT", None, "PUSH") class mainProgram: backgroundColor = (0, 0, 0) displayWidth = 1024 displayHeight = 600 display = programFrame.display.set_mode((displayWidth, displayHeight)) programFrame.display.set_caption('OLC') display.fill(backgroundColor) clock = programFrame.time.Clock() mouseX = 0 mouseY = 0 mousePresseded = 0. def __INIT__(self): pass def setMouse(self): pass def buttonSetup(self): prefButton.setVisible(True) addLightButton.setVisible(False) gpioPinButton.setVisible(False) print(prefButton.visible) def buttonUpdate(self): prefButton.update() addLightButton.update() gpioPinButton.update() def mainLoop(self): self.display.fill((0,0,0)) def mousePressed(self): pass def mouseReleased(self): pass mainProgram = mainProgram()et voici l'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101 #fichier classButton.py from mainProgram import mainProgram class button(object): name = None x = 0 y = 0 buttonSizeX = 0 buttonSizeY = 0 #img.get_size() mouseX = 0 mouseY = 0 mouseClick = None visible = False # type: bool isPressed = False mode = "" # type: str #RECT, CIRCLE, IMG buttontype = "" #PUSH, ONOFF colorR = 255 colorG = 255 colorB = 255 img = None textVisible = False textName = "Default" #myfont = mainFrame.font.Font('/home/danny/Bureau/Pycharm/pycharm_project/data/font/digital-7.ttf') #label = myfont.render(textName, 1, (0,0,0)) def __init__(self, name_, x_, y_, buttonSizeX_, buttonSizeY_, mode_, img_, buttontype_): self.name = name_ self.x = x_ self.y = y_ self.buttonSizeX = buttonSizeX_ self.buttonSizeY = buttonSizeY_ self.mode = mode_ self.buttontype = buttontype_ if mode_ == "IMG": self.img = mainProgram.transform.scale(img_, (self.buttonSizeX, self.buttonSizeY)) def overButton(self): if self.x-(self.buttonSizeX/2)+(self.buttonSizeX/2) <= self.mouseX <= self.x+(self.buttonSizeX/2)+(self.buttonSizeX/2) and \ self.y-(self.buttonSizeY/2)+(self.buttonSizeY/2) <= self.mouseY <= self.y+(self.buttonSizeY/2)+(self.buttonSizeY/2): return True else: return False def setVisible(self, visible_): self.visible = visible_ def setImg(self, img_): self.img = mainProgram.transform.scale(img_, (self.buttonSizeX, self.buttonSizeY)) def setColor(self, color_): (self.colorR, self.colorG, self.colorB) = color_ def setMode(self, mode_): self.mode = mode_ def setButtonType(self, buttontype_): self.buttontype = buttontype_ def setTextName(self, textName_): self.textName = textName_ def setTextVisible(self, textVisible_): self.textVisible = textVisible_ def show(self): if self.visible and self.mode == "RECT": mainProgram.draw.rect(display, (self.colorR, self.colorG, self.colorB), [self.x, self.y, self.buttonSizeX,self.buttonSizeY]) elif self.visible and self.mode == "CIRCLE": mainProgram.draw.ellipse(display, (self.colorR, self.colorG, self.colorB), [self.x, self.y, self.buttonSizeX,self.buttonSizeY]) elif self.visible and self.mode == "IMG": display.blit(self.img, (self.x, self.y)) # print(self.overButton()) # print(self.isPressed) # if self.textVisible: # display.blit(self.label, ((self.buttonSizeX/2), (self.buttonSizeY/2))) def pushButton(self): if self.overButton() and self.mouseClick[0] == 1: self.isPressed = True else: self.isPressed = False def onOff(self): if self.overButton and self.mouseClick[0] == 1: self.isPressed = not self.isPressed def update(self): (self.mouseX, self.mouseY) = programFrame.mouse.get_pos() self.mouseClick = programFrame.mouse.get_pressed() self.overButton() if self.buttontype == "PUSH": self.pushButton() elif self.buttontype == "ONOFF": self.onOff()
je ne sais pas pour quel raison je ne suis pas capable d'appeller la class dans le fichier mainFram
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Traceback (most recent call last): File "<input>", line 1, in <module> File "/home/danny/Bureau/Pycharm/pycharm-community-2018.3.2/helpers/pydev/_pydev_bundle/pydev_umd.py", line 198, in runfile pydev_imports.execfile(filename, global_vars, local_vars) # execute the script File "/home/danny/Bureau/Pycharm/pycharm-community-2018.3.2/helpers/pydev/_pydev_imps/_pydev_execfile.py", line 18, in execfile exec(compile(contents+"\n", file, 'exec'), glob, loc) File "/home/danny/Bureau/Pycharm/Olc/main.py", line 1, in <module> from mainProgram import * File "/home/danny/Bureau/Pycharm/pycharm-community-2018.3.2/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs) File "/home/danny/Bureau/Pycharm/Olc/mainProgram.py", line 1, in <module> from classButton import button File "/home/danny/Bureau/Pycharm/pycharm-community-2018.3.2/helpers/pydev/_pydev_bundle/pydev_import_hook.py", line 21, in do_import module = self._system_import(name, *args, **kwargs) File "/home/danny/Bureau/Pycharm/Olc/classButton.py", line 1, in <module> from mainProgram import mainProgram ImportError: cannot import name 'mainProgram'
en même temps j’arrive de la programmation Processing j'aimerais savoir si ma façon de monter le programme est la bonne ex:mes class sont tu monter correctement ou a vos yeux il y a un probleme ou l'execution du fichier main est t-elle correct ou ...
Présentement il y a pas mal d'erreur car sa fait 3 jours que je fait des tests sans résultat je m'arrange avec
en gros dans le fichier mainProgram je declare pygame et je declare aussi display pour le set_mode
comment je peux avoir accès a ses 2 instances la dans le fichier classButton
Merci
Danny
Partager