当前位置: 首页 > 知识库问答 >
问题:

在pygame中使用文本输入

公孙驰
2023-03-14
import tkinter as tk    
import pygame

pygame.init()
ss = width, height = 1024, 600
screen = pygame.display.set_mode(ss)
tkinput_1 = True    

while True:

    event = pygame.event.poll()
    keys = pygame.key.get_pressed()

    if event.type == pygame.QUIT:
        pygame.quit()
        sys.exit()

    screen.fill((0,0,0))

    if tkinput_1 == True:
         tkinput_root1 = tk.Tk()
         tkinput_root1.geometry("200x200")
         tkinput_root1.title("How many teams?")
         tkinput_input1 = tk.Entry(tkinput_root1)
         tkinput_1 = False

    pygame.display.update()

tkinput_root1.mainloop()

这只是我给tkinter文本输入框在pyplay中的一次尝试。我很确定它不会正常工作,但决定无论如何都要试一试,因为我没有什么可失去的。tkinter屏幕不显示,直到你退出pyplay。所以,我不是问是否有人知道如何修复代码,而是问是否有人知道在pyplay中创建文本框的最简单方法。我知道有一个文本输入类模块可以导入。如果你认为这是最简单的方法,那么你能告诉我吗?如果没有,请告诉我你认为最简单的方法是什么。这是一个小程序,所以我想为一个简单的文本框避免大量繁重的代码行。让我知道你们的想法。提前多谢了。

共有3个答案

居琛
2023-03-14

我建议使用EzText。这是向pygame程序中添加文本输入的好方法。我自己也使用过它,它很好,也很简单,可以与Python3.3一起使用。2.

http://www.pygame.org/project-EzText-920-.html

凌通
2023-03-14

你可以使用我正在制作的一个小图书馆,只需下载并使用它。

要创建简单的文本框,请尝试:

from GUI import *

input_bow = InLineTextBox((0, 0), 200)  

你必须给它至少一个位置和大小然后在你的输入循环中,更新它:

for e in pygame.event.get():
    input_box.update(e)

最后,渲染它:

input_box.render(screen)

您可以使用输入框获取文本。随时发送文本

聂迪
2023-03-14

我尝试过使用Tk,但使用Tk的问题是,当Tk窗口弹出时,它会停止整个pygame程序,而且效果不好

这就是我使用的Pygame输入框。它不是最漂亮的,但它工作得很好。下载它,它真的很容易使用

只需导入输入框

然后像这样做:

inp = int(inputbox.ask(screen, 'Message')) #inp will equal whatever the input is

这与原始输入非常相似,但适用于pygame

这不是最美观的,但我相信如果你四处寻找,你会找到一个更好的

 类似资料:
  • 问题内容: 我想在Python中从用户那里获取一些文本输入,并在文本框中显示他们正在输入的内容,然后当他们按Enter时,它将存储在字符串中。 我到处都看过,但是什么也找不到。我正在使用Pygame。 问题答案: 您可以将rect定义为输入框的区域。如果发生事件,请使用rect方法检查它是否与冲突,然后通过将变量设置为来激活它。 如果该框处于活动状态,则可以键入一些内容,Pygame将生成事件,该

  • 我想用Python从用户那里获取一些文本输入,并在文本框中显示他们正在键入的内容,当他们按enter键时,它将存储在一个字符串中。 我到处找了,但什么也找不到。我在用Pygame。

  • 问题内容: 如何从用户进行pygame打印输入: 我试图让用户键入一些内容,然后pygame将其打印在屏幕上。 这是我当前的程序: 我想要这样,当用户点击Enter时,它将清空屏幕。 帮我! 问题答案: 这是一个示例脚本,可将输入切换到屏幕。它显示了如何在遍历pygame事件队列时修改字符串。每帧都将清除屏幕,并重建名称表面并使其变白。 这是要点版本

  • 问题内容: 在输入框selenium中,我们可以输入如下值: 但是在1个网页上,我点击了要获得selenium的一个div后有一个按钮,我得到了那个div的xpath 使用xpath,我正在获得div,但是如何使用xpath在其中输入文本? 手动添加文本后的HTML: 我必须在其中输入文本的div是: 问题答案: 您可以使用JavaScript更新DIV文本 在JavaScript中使用XPATH

  • 我必须在其中输入文本的div是:

  • 我有一个HTML元素. 加载页面后,我可以使用从该元素获取文本。 但随后我点击这个元素并更改里面的文本(例如,改为“已编辑”)。DOM中没有任何变化,包括属性 的值(即仍然返回“initial”,并且DOM中的元素看起来像) 如何提取现在在浏览器中可见的值(即字符串“已编辑”)?我需要执行一些JavaScript或其他东西吗?