为什么我的程序在 运行 时没有响应
Why does my program not respond when I run it
我最近开始 python,并意识到这可能是一个愚蠢的问题,但我试图使用 window 制作基于选择的游戏。我使用 graphics.py
来显示我的文字。当我 运行 代码时,window 打开但在 "not responding state" 中,我无法找出问题所在。
也没有错误代码
我基本上是从 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()
尽管位于 tkinter 之上,但 Zelle Graphics 没有用户访问事件管理器的权限! (不像 Python turtle 也位于 tkinter 之上。)而且 Entry
对象确实暴露了这个缺点。
人们使它具有任何 状态 的两种方法是 运行 无限循环不断处理输入或使用鼠标点击来推进状态。由于您收到 "not responding" 消息,我假设您正在 运行 进行某种开发 IDE,例如 Anaconda,它不喜欢您的 运行away 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",程序将退出。您的用户需要知道在输入任何输入字段后点击。
我最近开始 python,并意识到这可能是一个愚蠢的问题,但我试图使用 window 制作基于选择的游戏。我使用 graphics.py
来显示我的文字。当我 运行 代码时,window 打开但在 "not responding state" 中,我无法找出问题所在。
也没有错误代码
我基本上是从 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()
尽管位于 tkinter 之上,但 Zelle Graphics 没有用户访问事件管理器的权限! (不像 Python turtle 也位于 tkinter 之上。)而且 Entry
对象确实暴露了这个缺点。
人们使它具有任何 状态 的两种方法是 运行 无限循环不断处理输入或使用鼠标点击来推进状态。由于您收到 "not responding" 消息,我假设您正在 运行 进行某种开发 IDE,例如 Anaconda,它不喜欢您的 运行away 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",程序将退出。您的用户需要知道在输入任何输入字段后点击。