【问题标题】:Newline in Pygame With Unicode In Input BoxPygame中的换行符与输入框中的Unicode
【发布时间】:2019-12-07 03:01:55
【问题描述】:

我正在 pygame 中制作一个简单的输入框,您应该可以在其中输入任何内容,按退格键,然后按 Enter 键添加换行符。不过,我似乎无法换行,因为我不知道该怎么做。我希望能够在按 Enter 时添加换行符并将其他文本保留在其上方。

我曾尝试使用text = text + "/n",但没有奏效。

这是我的代码:

import pygame
pygame.init()

winheight = 600
winwidth = 1200
font = pygame.font.Font(None, 32)
input_box = pygame.Rect(50, 50, winwidth - 100, winheight - 100)
blue = (0, 0, 255)
Text = ''
Writing = True

win = pygame.display.set_mode((winwidth, winheight))
pygame.display.set_caption("Clogging Cuesheet Writer")

while Writing:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            Writing = False
            break
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                print ("replace this with the command to make Text plus a newline")
            elif event.key == pygame.K_BACKSPACE:
                Text = Text[:-1]
            else:
                Text += event.unicode

    #clear screen, draw text, draw inputbox, then update
    win.fill((0, 0, 0))
    txt_surface = font.render(Text, True, blue)
    win.blit(txt_surface, (input_box.x+15, input_box.y+15))
    pygame.draw.rect(win, blue, input_box, 2)
    pygame.display.update()
pygame.quit()

请帮忙

【问题讨论】:

    标签: python python-3.x input textbox pygame


    【解决方案1】:

    那是因为您在“/n”中有错字。你真正想要的是“\n”:

    if event.key == pygame.K_RETURN:
        print (text = text + '\n')
    

    【讨论】:

    • 这确实适用于其他东西,比如打印新行,但在 pygame 中它没有,原因有两个。一个我不能使用这样的打印功能,两个如果我只是做 text = text + '\n' 它只会创建一个正方形。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-11
    • 2015-11-08
    • 2013-05-20
    • 2020-06-08
    • 2011-12-28
    • 1970-01-01
    相关资源
    最近更新 更多