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

Tkinter和PIL错误

越心水
2023-03-14

我想找一份工作。gif动画在带有按钮的图片旁边工作。但我似乎遇到了一个问题,我正在导入这些模块“导入Tkinter”和“从PIL导入Image,ImageTk,ImageSequence”,但是,一旦我创建了“导入Tkinter”——“从Tkinter导入*”,它说Tkinter没有定义,我已经搜索了。。搜索。。。。我无法为我的死亡找到解决办法。我必须使用“from Tkinter import*”,因为我不知道在哪里可以找到“*”的子项的特殊性,我还需要使用“Label”、“bg”和“relief”这是我的代码:

    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()

我还有另一个部分,我将与此代码合并:

import webbrowser
from Tkinter import *
from PIL import ImageTk,Image

Url1 = 'https://www.nedbank.co.za'
Url2 = 'https://www.facebook.com'

def openUrl1():
        webbrowser.open(Url1, 2)

def openUrl2():
        webbrowser.open(Url2, 2)

root = Tk()
root.title('App')
root.minsize(width = 400, height = 400)
root.maxsize(width = 400, height = 400)
image = Image.open("C:\\Users\\Damian\\Pictures\\Lores.png")
photo = ImageTk.PhotoImage(image)
label = Label(image = photo)
label.image = photo
label.place(x = 0, y = 0)

color1 = 'white'
button1 = Button(
            text = color1,
            bg = color1,
            relief = "raised",
            width = 220,
            height = 85,
            command = openUrl1
)
Original = Image.open("C:\\Users\\Damian\\Pictures\\NedbankLogoNew.png")
im_pm = ImageTk.PhotoImage(Original)
button1.config(image = im_pm)
button1.place(x = 0, y = 0)
root.mainloop()

共有1个答案

拓拔嘉运
2023-03-14

推荐的导入tkinter的方法如下:

import Tkinter as tk

一旦你这样做了,你就像平常一样使用tkinter,但是你需要在所有的小部件和常量前面加上tk.。当然,您可以导入Tkinter,但这意味着您必须在所有内容前加上Tkinter。

例如:

import Tkinter as tk

root = tk.Tk()
label = tk.Label(root, relief=tk.RAISED)
...

我个人不建议使用常量。您只需使用一个字符串(例如:relief=“raised”sticky=“nsew”)即可得到完全相同的结果。

 类似资料:
  • 问题内容: 我已经使用PIL打开了图像,因为 在上面画一些文字 然后将其另存为 用pygame.image打开它 我只想不保存就做。可以吗?保存然后加载需要大量时间(0.12秒,是的,因为我有多个需要此操作的图像,因此需要更多时间)。可以超越那种保存方法吗? 问题答案: 您可以使用中的功能。根据文档,以下内容应该起作用:

  • 问题内容: 我正在尝试制作一个程序来使用Tkinter显示动画GIF。这是我最初使用的代码: test.gif是以下GIF: 这可以正常工作,但是GIF的质量很糟糕。我尝试将其更改为以下内容: 但是,这偶尔会闪烁图像。虽然图片看起来不错,但是作为程序却毫无用处。我究竟做错了什么? 问题答案: 首先,您要为每个帧创建一个新的画布对象。最终,您将有成千上万的图像相互叠加。这是非常低效的;当您开始具有数

  • 问题内容: 我目前正在使用PIL在Tkinter中显示图像。我想临时调整这些图像的大小,以便可以更轻松地查看它们。我该怎么办? 片段: 问题答案: 这就是我所做的,并且效果很好… 你去了:) 编辑: 这是我的进口声明: 这是我改编自此示例的完整工作代码: 这是PhotoImage类文档:http ://www.pythonware.com/library/tkinter/introduction/

  • 问题内容: 我等待5秒钟后试图删除文本框内的文本,但是该程序无法运行,并且会休眠其他所有内容。还有一种方法可以让我的文本框进入睡眠状态,以便在冻结文本时可以运行其他代码? 问题答案: 您确实应该使用Tkinter after方法而不是。 在另一个stackoverflow问题中有一个使用after方法的示例。 这是使用after方法的脚本的修改版本:

  • PIL

    PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用。 安装PIL 在Debian/Ubuntu Linux下直接通过apt安装: $ sudo apt-get install python-imaging Mac和其他版本的Linux可以直接使用easy_install或pip安装,安装前需要把编译环境

  • PIL

    PythonWare公司提供了免费的图像处理工具包PIL(Python Image Library),该软件包提供了基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。虽然在这个软件包上要实现类似MATLAB中的复杂的图像处理算法并不太适合,但是Python的快速开发能力以及面向对象等等诸多特点使得它非常适合用来进行原型开发。 在PIL