Tkinter创建图像函数报错(pyimage1不存在)

2024-02-11

我是一名来自外界的学生,之前没有任何编程经验。我一直在学习 Python 作为数学课的延伸。我一直在尝试创建一个使用 Tkinter 生成分形的程序。该代码本身运行良好,但包含用户输入 GUI 会导致出现错误:

    Exception in Tkinter callback
    Traceback (most recent call last):
      File "C:\Python33\lib\tkinter\__init__.py", line 1475, in __call__
        return self.func(*args)
      File "C:\Python33\FractalGUI.py", line 74, in fractals
        canvas.create_image((0, 0), image = img, state = "normal", anchor = tkinter.NW)
      File "C:\Python33\lib\tkinter\__init__.py", line 2319, in create_image
        return self._create('image', args, kw)
      File "C:\Python33\lib\tkinter\__init__.py", line 2310, in _create
        *(args + self._options(cnf, kw))))
    _tkinter.TclError: image "pyimage1" doesn't exist

代码本身如下。请注意,错误不会出现,直到canvas.create_image线路已运行。如果我可以提供任何其他信息,请告诉我。谢谢! :)

    import tkinter
    from tkinter import *

    #Creates widgets for user input
    class Imagespecs(Frame):

        def __init__(self,master):
            Frame.__init__(self,master)
             self.grid()
             self.y_axis()
             self.x_axis()

    #Y axis input
         def y_axis(self):
            self.instruction = Label(self,text = "How many pixels high do you want the image?")
            self.instruction.grid(row = 8, column = 0, columnspan = 2, sticky = N)

            self.height = Entry(self)
            self.height.grid(row = 10, column = 1, sticky = E)

    #Enters info to run fractal generation
            self.submit_button = Button(self,text = "Submit", command = self.fractals)
            self.submit_button.grid(row = 14, column = 2, sticky = E)

    #X axis input
         def x_axis(self):
             self.instruction2 = Label(self,text = "How many pixels wide do you want the image?")
             self.instruction2.grid(row = 4, column = 0, columnspan = 2, sticky = E)

            self.width = Entry(self)
            self.width.grid(row = 6, column = 1, sticky = E)

      #generates fractal
         def fractals(self):
             #Replace non-input
             content = self.width.get()
             content2 = self.height.get()

             if content == "":
                content = 500

             if content2 == "":
                content2 = 500

            #Create window specs
            WIDTH = int(content2); HEIGHT = int(content)
            xa = -2.0; xb = 1.0
            ya = -1.5; yb = 1.5
            maxIt = 256

             window = Tk()
             canvas = Canvas(window, width = WIDTH, height = HEIGHT, bg = "#000000")
             img = PhotoImage(width = WIDTH, height = HEIGHT)

             #The Newton-Raphson iteration
             h = HEIGHT
            for ky in range(HEIGHT):
                print (h)
                h = h - 1
                for kx in range(WIDTH):
                    c = complex(xa + (xb - xa) * kx / WIDTH, ya + (yb - ya) * ky / HEIGHT)
                    z = complex(0.0, 0.0)
                     for i in range(maxIt):
                        z = z * z + c
                        if abs(z) >= 2.0:
                            break
                     rd = hex(i % 4 * 64)[2:].zfill(2)
                     gr = hex(i % 8 * 32)[2:].zfill(2)
                     bl = hex(i % 16 * 16)[2:].zfill(2)
                     img.put("#" + rd + gr + bl, (kx, ky))

             canvas.create_image((0, 0), image = img, state = "normal", anchor = tkinter.NW)

             #Run GUI
             canvas.pack()
             mainloop()

     root = Tk()
     root.title("Fractal GUI")
     root.geometry("300x200")
     app = Imagespecs(root)

     root.mainloop()

尝试定义一个master:

PhotoImage(master = canvas, width = WIDTH, height = HEIGHT)

如果您没有定义主版,则此图像将使用第一个Tk()这是创建的,如果是Tk删除后没有图像可显示。

告诉我它是否有效,我猜。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tkinter创建图像函数报错(pyimage1不存在) 的相关文章

随机推荐

  • PictureBox 无法正常刷新?

    我是编程新手 如果我问了一个愚蠢的问题 请原谅我 我正在尝试显示从实时摄像头获得的实时图像 当我启动程序时 图片框能够显示该对象 参见图1 当我删除该对象时 它会显示此图像 参见图2 但问题是 当我放回对象时 我应该能够获得类似于图片 1
  • 在循环中创建控件

    我有一些代码可以将新单元格添加到表格中并用文本框填充它们 到目前为止我的编码方式效果很好 TableCell tCell1 new TableCell TableCell tCell2 new TableCell TableCell tCe
  • 如何更改 WordPress 页面上的标题?

    上下文 WordPress 5 4 5 和优斯特搜索引擎优化 https en wikipedia org wiki Yoast SEO 3 7 1 我是一名插件开发人员 可以访问客户的网站 该站点安装了 Yoast 3 7 1 这很重要吗
  • 中间有 T 的日期/时间 (2008-09-18T00:00:00) 怎么称呼?

    如果您有一个像 2008 09 18T00 00 00 这样的日期 它有名称吗 世界标准时间 类似的事情 令人惊讶的是很难用谷歌搜索这个 这是一个组合的日期 时间表示形式 定义为ISO8601 http en wikipedia org w
  • 种子设置:为什么输入不变后输出不同

    设置种子可确保再现性 并且在仿真建模中非常重要 考虑一个简单的模型f 有两个变量y1 and y2出于兴趣 这些变量的输出由随机过程决定 rbinom 和参数x1 and x2 两个感兴趣变量的输出彼此独立 现在假设我们想要将相应参数发生变
  • 如何检测删除按钮UItableviewcell是否被隐藏?

    我有一个包含 UITableView 的视图 当用户滑动时 我可以在单元格上显示删除按钮 如果用户触摸删除按钮 将触发一个方法 这很好用 但是 如果用户决定不删除单元格 并且触摸视图中的任意位置以隐藏删除按钮 我怎样才能检测到这一点 当用户
  • 如何使用brew安装maven而不使用openjdk?

    我的机器上已经安装了 Java HotSpot JDK 11 我正在使用它来进行所有操作 当我打字时brew install maven它尝试安装openjdk作为依赖 我不希望这样 希望 maven 使用我的 JDK 而不是它自己的ope
  • 在 Angular Material 2 表中使用虚拟滚动和 @angular/cdk-experimental

    我有一个表显示很多行 我想优化它的性能 我通过使用虚拟滚动技术找到了解决方案 这是一个例子Angular Material CDK 虚拟滚动视口组件 https github com angular material2 tree maste
  • 使用当前日期初始化模型

    我正在尝试使用当前日期初始化我的模型 我不想使用本机模块 我正在尝试通过任务和效果来做到这一点 我被困在我的getCurrentTime方法 什么是最干净的方法 import Time exposing Time import StartA
  • 字段初始值设定项无法引用非静态字段、方法或属性

    好的 我有下面的代码 从技术上讲 它所做的就是读取db txt逐行文件 然后假设分割行0到一个名为密码的数组中 private string lines System IO File ReadAllLines U Final Project
  • NodeJS 集群不使用循环(在 Windows 上开发)

    您好 我目前正在开发一个 MEAN 堆栈项目 我发现了在部署项目之前建议使用的 Nodejs 集群模块 我已经应用了它并做了一些 ApacheBenchmark 问题是 它只响应 1 个工作人员 它不会围绕我的其他 7 个工作人员轮换 我在
  • 这是如何打印“hello world”的?

    我发现了这个奇怪的现象 for long l 4946144450195624l l gt 0 l gt gt 5 System out print char l 31 64 95 32 Output hello world 这是如何运作的
  • 在 C# 中为我的列表包装器实现集合初始值设定项[重复]

    这个问题在这里已经有答案了 我创建了一个包装列表的类 class Wrapper private List
  • 如何从核心 iOS 代码引用 WatchKit 扩展中的 Swift 类?

    我试图让我的 iOS 应用程序在每次从服务器更新数据时向 WatchKit 扩展发送一组数据 这就是我的 iOS 应用程序中的代码 名称已更改 WatchKitDataModel loadDataFromSource currentData
  • 在命令行工具中使用框架

    我使用 Cocoa 在 Xcode 中构建了一个命令行实用程序 基础工具 该工具使用第三方框架 在 Xcode 中一切正常 但是我如何部署这个程序呢 如果我从 Finder 运行该应用程序 它无法找到该库 因为它正在查找 Framework
  • 使用 Python 估计自相关

    我想对如下所示的信号执行自相关 两个连续点之间的时间为 2 5ms 或重复率为 400Hz 这是我想使用的估计自动增加的方程 取自http en wikipedia org wiki 自相关 http en wikipedia org wi
  • 以 JSON 形式获取 Twitter 公共提要

    作为我项目的一部分 我需要在 iOS 应用程序中显示推文列表 我尝试使用下面的代码 但它返回 JSON 相同的代码在版本 1 上运行良好 现在 twitter api 版本是 1 1 我收到另一个警告TWRequest is depreca
  • 签署 SOAP 消息期间的 WSS4j 元素顺序

    我正在 Java 中实现 Web 服务客户端 它使用 wss4j 1 6 8 来实现 WS Security 更准确地说 我需要签署 SOAP 消息 服务器端要求请求具有以下结构
  • 将日期时间转换为美国和欧洲日期时间

    我需要转换格式为 2012 10 15 15 00 21 970 的日期 至欧洲 15 10 2012 15 00 21 CONVERT nvarchar DateTime 103 N CONVERT nvarchar DateTime 8
  • Tkinter创建图像函数报错(pyimage1不存在)

    我是一名来自外界的学生 之前没有任何编程经验 我一直在学习 Python 作为数学课的延伸 我一直在尝试创建一个使用 Tkinter 生成分形的程序 该代码本身运行良好 但包含用户输入 GUI 会导致出现错误 Exception in Tk