Files
BleedingHeart/Interface/main.py
2020-03-13 15:20:28 -05:00

75 lines
2.1 KiB
Python

import pygame
import serial
def createText(font, text, position):
text = font.render(text, True, (0,0,0), (255,255,255))
textRect = text.get_rect()
textRect.center = position
return text, textRect
pressure, heart_rate = 0, 0
pygame.init()
width, height = 900, 900
screen = pygame.display.set_mode((width, height))
pygame.display.set_caption('Bleeding Heart Interface')
clock = pygame.time.Clock()
font = pygame.font.SysFont('', 32)
texts = []
buttons = []
positions = [(width*.25, height *.1), (width*.75,height*.1),
(width*.25, height*.2), (width*.75, height*.2),
(width*.2, height*.3), (width*.7, height*.3)]
texts.append(createText(font, 'Pressure (PSI)', positions[0]))
texts.append(createText(font, 'Heart Rate (BPM)', positions[1]))
texts.append(createText(font, '0', positions[2]))
texts.append(createText(font, '0', positions[3]))
def test(nothing):
return
testButton = Button([10,10], [50,50], pygame, test, "Hello")
def main():
done = False
while not done:
screen.fill((255, 255, 255))
for text in texts:
screen.blit(text[0], text[1])
for event in pygame.event.get():
if event.type == pygame.QUIT:
done = True
pygame.display.update()
clock.tick(60)
pygame.quit()
return
class Button:
pos = [0,0]
size = [0,0]
def __init__(self, position, size, pygame, function, argument):
self.pos = position
self.size = size
self.function = function
self.argument = argument
self.pygame = pygame
return
def isClicked(self):
x, y = self.pygame.get_pos()[0], self.pygame.get_pos()[1]
if x >= self.pos[0] and x <= self.pos[0]+self.size[0]:
if y >= self.pos[1] and y <= self.pos[1]+self.size[1]:
if pygame.mouse.get_pressed()[0] == True:
self.function(self.argument)
return True
return False
def setPosition(self, x, y):
self.pos[0], self.pos[1] = x, y
return
def setArgument(self, argument):
self.argument = argument
return
if __name__ == "__main__":
main()