我正试图让.gif动画在带有按钮的图片旁边工作。但我似乎遇到了问题,我正在导入这些模块 “import Tkinter”和“来自PIL导入图像,ImageTk,ImageSequence” 但是,只要我做“导入Tkinter”---“来自Tkinter import *” 它说Tkinter没有定义,我搜索过......并且搜索过....我不能为我的死亡找到解决方案。 我必须使用“来自Tkinter import *”,因为我不知道在哪里可以找到“*”的子项目的特定内容我还需要使用“Label”,“bg”和“relief” 这是我的代码:
RecyclerView
我还有另一篇文章要与这段代码合并:
import Tkinter
from PIL import Image, ImageTk, ImageSequence
class App:
def __init__(self, parent):
self.parent = parent
self.canvas = Tkinter.Canvas(parent, width = 400, height = 500)
self.canvas.pack()
self.sequence = [ImageTk.PhotoImage(img)
for img in ImageSequence.Iterator(
Image.open(
r'C:\Users\Damian\Pictures\Gif folder\Originals\Bunnychan.gif'))]
self.image = self.canvas.create_image(200,200, image=self.sequence[0])
self.animating = True
self.animate(0)
def animate(self, counter):
self.canvas.itemconfig(self.image, image=self.sequence[counter])
if not self.animating:
return
self.parent.after(33, lambda: self.animate((counter+2) % len(self.sequence)))
root = Tkinter.Tk()
root.title('App')
app = App(root)
root.mainloop()
答案 0 :(得分:0)
导入tkinter的推荐方法是:
import Tkinter as tk
一旦你这样做,就像平常一样使用tkinter,但你需要在所有小部件和常量之前添加tk.
。当然,你可以做import Tkinter
,但这意味着你必须用Tkinter.
加上前缀,这有点过于罗嗦IMO。
例如:
import Tkinter as tk
root = tk.Tk()
label = tk.Label(root, relief=tk.RAISED)
...
我个人不建议使用常量。您可以只使用一个字符串(例如:relief="raised"
,sticky="nsew"
等),这样可以得到完全相同的结果。