我最近开始使用 python,并意识到这可能是一个愚蠢的问题,但我试图使用窗口制作基于选择的游戏。我曾经graphics.py显示我的文字。当我运行代码时,窗口打开但处于“无响应状态”,我无法找出问题所在。也没有错误代码我基本上从 left peel 的视频中复制了所有内容。然而,视频是否已经过时,所以可能某处有错误,但没有更多的网站或视频可以解释graphics.py这是代码:from graphics import *def main(): win = GraphWin("win", 1300, 700) #win.setBackground(color_rgb(255, 0, 0)) txt = Text(Point(650, 120), 'This was text') txt1 = Text(Point(650, 135), "This was text") txt2 = Text(Point(650, 150), "This was text") txt3 = Text(Point(650, 165), "This was text") txt4 = Text(Point(650, 180), "This was text " "This was text.") img = Image(Point(650, 450), "a picture (.gif)") nxt = Text(Point(1090, 590), "Type next for next") txt.draw(win) txt1.draw(win) txt2.draw(win) txt3.draw(win) txt4.draw(win) img.draw(win) inputb = Entry(Point(1200, 590), 10) inputb.draw(win) nxt.draw(win) s = inputb.getText() command = inputb.getText() while True: s = inputb.getText() if s == 'next': the program stopped working from here, so i just put a print("")main()
1 回答
元芳怎么了
TA贡献1798条经验 获得超7个赞
尽管位于 tkinter 之上,但 Zelle Graphics 没有用户访问事件管理器的权限!(不像 Python turtle 也位于 tkinter 之上。)而且这个Entry对象确实暴露了这个缺点。
人们使它具有任何状态的两种方法是不断运行无限循环处理输入或使用鼠标单击来推进状态。由于您收到“未响应”消息,我假设您正在某种开发 IDE 下运行,例如 Anaconda,它不喜欢您的失控while True:循环。所以我们需要切换到鼠标点击。这是一个简单的例子:
from graphics import *
win = GraphWin()
entry = Entry(Point(100, 100), 10)
entry.draw(win)
text = Text(Point(100, 150), 'This is text')
text.draw(win)
while True:
win.getMouse()
string = entry.getText()
if string.lower() == 'quit':
break
text.setText(string.upper())
您可以在Entry小部件中键入,然后当您单击鼠标时,您的输入将显示在Text小部件中,但全部为大写。如果输入“quit”,程序将退出。您的用户需要知道在输入任何输入字段后点击。
添加回答
举报
0/150
提交
取消