Root.mainloop() 然后忽略下面的代码
Root.mainloop() then disregards the code below
我是编码新手,我想创建一个可以让计算机生活更轻松的机器人。我试图在使用 tkinter 时放置一个动画,但是在我将 root.mainloop() 放在 tkinter 代码之后,它忽略了下面的代码。以下示例。
import tkinter as tk
from tkinter import *
import datetime
class ImageLabel(tk.Label):
"""
A Label that displays images, and plays them if they are gifs
:im: A PIL Image instance or astring filename
"""
def load(self, im):
if isinstance(im, str):
im = Image.open(im)
frames = []
try:
for i in count(1):
frames.append(ImageTk.PhotoImage(im.copy()))
im.seek(i)
except EOFError:
pass
self.frames = cycle(frames)
try:
self.delay = im.info['duration']
except:
self.delay = 100
if len(frames) == 1:
self.config(image=next(self.frames))
else:
self.next_frame()
def unload(self):
self.config(image=None)
self.frames = None
def next_frame(self):
if self.frames:
self.config(image=next(self.frames))
self.after(self.delay, self.next_frame)
lbl = ImageLabel(root)
lbl.pack()
lbl.load('pyimage1.gif')
root.mainloop()
def WishMe():
hour = int(datetime.datetime.now().hour)
if hour >= 0 and hour < 12:
speak("Good Morning !")
elif hour <= 12 and hour < 18:
speak("Good Afternoon !")
else:
speak("Good Evening !")
忽略未定义名称和缺少导入的许多问题,您所做的是在主循环之后定义一个函数。这本身就可以了。
但实际上您从来没有调用这个函数。
即使你这样做了,你也只能在定义之后调用它(否则你会得到一个NameError
异常)。所以 WishMe
只能 运行 在 之后 mainloop
退出并且 window 关闭。不清楚这是否是您的意图。
我是编码新手,我想创建一个可以让计算机生活更轻松的机器人。我试图在使用 tkinter 时放置一个动画,但是在我将 root.mainloop() 放在 tkinter 代码之后,它忽略了下面的代码。以下示例。
import tkinter as tk
from tkinter import *
import datetime
class ImageLabel(tk.Label):
"""
A Label that displays images, and plays them if they are gifs
:im: A PIL Image instance or astring filename
"""
def load(self, im):
if isinstance(im, str):
im = Image.open(im)
frames = []
try:
for i in count(1):
frames.append(ImageTk.PhotoImage(im.copy()))
im.seek(i)
except EOFError:
pass
self.frames = cycle(frames)
try:
self.delay = im.info['duration']
except:
self.delay = 100
if len(frames) == 1:
self.config(image=next(self.frames))
else:
self.next_frame()
def unload(self):
self.config(image=None)
self.frames = None
def next_frame(self):
if self.frames:
self.config(image=next(self.frames))
self.after(self.delay, self.next_frame)
lbl = ImageLabel(root)
lbl.pack()
lbl.load('pyimage1.gif')
root.mainloop()
def WishMe():
hour = int(datetime.datetime.now().hour)
if hour >= 0 and hour < 12:
speak("Good Morning !")
elif hour <= 12 and hour < 18:
speak("Good Afternoon !")
else:
speak("Good Evening !")
忽略未定义名称和缺少导入的许多问题,您所做的是在主循环之后定义一个函数。这本身就可以了。
但实际上您从来没有调用这个函数。
即使你这样做了,你也只能在定义之后调用它(否则你会得到一个NameError
异常)。所以 WishMe
只能 运行 在 之后 mainloop
退出并且 window 关闭。不清楚这是否是您的意图。