Я работаю над проектом, в котором я пытаюсь переключаться между предварительным просмотром камеры на Picamera и некоторым текстом на экране, используя окна Pygame. Я дошел до того, что я могу открыть Picamera, затем некоторый текст, затем снова Picamera, но когда я пытаюсь открыть окно Pygame для большего количества текста, я получаю ошибку сегментации.
Я думаю, что главная проблема - это выход из окна пигмея, не выходя из других вещей, которые мне нужны, чтобы открыть другое окно пигмея. Команды, такие как sys.exit и pygame.quit, похоже, слишком много бросают. Я пробовал альтернативы, такие как помещение текста в цикл while и затем создание цикла false в конце, чтобы он закрывал окно без фактической команды выхода, но, похоже, это ничего не закрывало. Код работает отлично, пока я не попытаюсь инициализировать Pygame во второй раз. Именно тогда он дает мне ошибку сегментации и открывает новое окно в моем простое Python с целой кучей другого кода, который я не писал.
pygame.init()
white = (255, 255, 255)
green = (0, 255, 0)
blue= (0, 0, 128)
black = (0, 0, 0)
display_surface = pygame.display.set_mode((1350,800))
pygame.display.set_caption(' ')
camera()
font = pygame.font.Font('freesansbold.ttf', 30)
text = font.render('You', True, black, white)
textRect = text.get_rect()
textRect.center = (1350//2, 800//2)
display_surface.fill(white)
display_surface.blit(text, textRect)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
pygame.display.update()
time.sleep(1)
pygame.quit()
camera()
pygame.init()
white = (255, 255, 255)
green = (0, 255, 0)
blue= (0, 0, 128)
black = (0, 0, 0)
display_surface = pygame.display.set_mode((1350,800))
pygame.display.set_caption(' ')
font = pygame.font.Font('freesansbold.ttf', 30)
text = font.render('test', True, black, white)
textRect = text.get_rect()
textRect.center = (1350//2, 800//2)
display_surface.fill(white)
display_surface.blit(text, textRect)
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
quit()
pygame.display.update()
time.sleep(1)
То, что я хотел бы сделать, это переключаться между picamera и текстом еще несколько раз, поэтому, если я смогу выяснить, как исправить это один раз, тогда мне просто нужно скопировать и вставитькод немного больше, чтобы получить следующие итерации. Я новичок в кодировании.