Отобразить содержание pdf (или doc, txt) в окне Pygame
Хочу создать некую библиотеку (обучающий проект). Подскажите, пожалуйста, возможно ли при нажатии на кнопку отразить текст pdf (или doc, txt) файла в окне pygame?
Или открыть данный файл при нажатии на кнопку.
Перебрала все варианты, которые нашла в интернете, но или нарушаю порядок написании кода или не правильно его понимаю.
При нажатии на K_button
хочу отразить содержания файла или файл.
Отрывок кода:
import pygame
import sys
from Button import ImageButton
pygame.init()
screen = pygame.display.set_mode((1024, 670))
pygame.display.set_caption("Собственность")
icon = pygame.image.load("image/8920844.png")
pygame.display.set_icon(icon)
#Картинка фона
bg = pygame.image.load("image/XXL.png")
def theft158():
home_button = ImageButton(10, 5, 35, 35, "", "image/Домой.png", "image/Домой2.png")
back_button = ImageButton(45, 5, 40, 40, "", "image/Назад.png", "image/Назад2.png")
K_button = ImageButton(20, 105, 1024, 30, "Астраханский областной суд", "image/Статьи.png", "image/Статья2.png")
running = True
while running:
screen.fill((0, 0, 0))
screen.blit(bg, (0, 0))
home_button.check_hover(pygame.mouse.get_pos())
home_button.draw(screen)
back_button.check_hover(pygame.mouse.get_pos())
back_button.draw(screen)
K_button.check_hover(pygame.mouse.get_pos())
K_button.draw(screen)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pygame.quit()
sys.exit()
home_button.handle_event(event)
back_button.handle_event(event)
if event.type == pygame.USEREVENT and event.button == home_button:
main_menu()
if event.type == pygame.USEREVENT and event.button == back_button:
sud_menu()
if event.type == pygame.USEREVENT and event.button == K_button:
pass
if __name__ == "__main__":
main_menu()
Ответы (2 шт):
Для того, чтобы полноценно открыть документ Word или pdf, нужно чтоб объект, в котором содержимое отображается, поддерживал такое отображение как должно. С простым текстом проще. Вот вариант для "Или открыть данный файл при нажатии на кнопку":
import os
os.startfile(v_file)
Файл загрузится для просмотра в том приложении, которое закреплено в Windows за данным типом файла. Аналог "клацанья дважды по файлу в Проводнике".
Как вариант для my_file.txt:
main.py:
import pygame
from pygame.locals import *
pygame.init()
screen = pygame.display.set_mode([640, 380])
clock = pygame.time.Clock()
red = (255, 0, 0)
yellow = (255, 191, 0)
bg = pygame.image.load("background.png")
list_of_lines = []
with open('my_file.txt', encoding='utf-8') as file:
list_of_lines = [line.rstrip() for line in file]
font = pygame.font.SysFont('impact', 24)
msg_list = []
for line in list_of_lines:
msg = font.render(line, True, yellow)
msg_list.append(msg)
rows = len(msg_list) - 1
centerx = screen.get_rect().centerx
centery = screen.get_rect().centery
deltaY = centery + 50
running = True
while running:
clock.tick(80)
for event in pygame.event.get():
if event.type == QUIT:
running = False
screen.fill(0)
screen.blit(bg, (0, 0))
deltaY -= 1
for i, msg in enumerate(msg_list):
pos = msg.get_rect(
center=(centerx, centery + deltaY + 30 * i))
screen.blit(msg, pos)
if i==rows and pos.y < -50:
centerx = screen.get_rect().centerx
centery = screen.get_rect().centery
deltaY = centery + 50
pygame.display.update()
pygame.quit()
my_file.txt:
HELLO Pygame
Как отобразить содержание
my_file.txt
в окне pygame?
Хочу создать некую библиотеку (обучающий проект)
подскажите, пожалуйста, возможно ли при нажатии
на кнопку отразить текст файла.txt в окне pygame?
Или открыть данный файл при нажатии на кнопку.
Перебрала все варианты, которые нашла в интернете,
но или нарушаю порядок написании кода или
не правильно его понимаю.
background.png