python使用变量需要初始化吗_Python:变量没有正确初始化?

"这篇博客讨论了一段Python代码中遇到的问题,该代码使用Tkinter库创建了一个图形用户界面,包括左右两个框架、可视化组件、直方图、列表项和滑块。作者在实现滑块回调函数时遇到了错误,提示`^{pr2}
摘要由CSDN通过智能技术生成

我用python编写了以下代码self._job = None

#slider

def sliderCallback(self):

if self._job:

我得到了这个错误信息

^{pr2}$

为什么?我以为我已经初始化了变量。。。在

更新

定时器变量也有同样的问题import Tkinter as tk

import vtk

from time import *

from threading import *

from vtk.tk import *

from Visualization import *

from Histogram import *

from ListItem import *

class UI(tk.Frame):

def build(self, root):

#left column

self.leftFrame = tk.Frame(root, width=400, height=550, bg="black") #.grid(column=4, row=0)

self.leftFrame.pack(fill=tk.BOTH, expand=True, side=tk.LEFT)

#right column

self.rightFrame = tk.Frame(root, width=400, height=550, bg="black") #.grid(column=4, row=0)

self.rightFrame.pack(fill=tk.BOTH, expand=True, side=tk.RIGHT)

#self.rightBottomFrame = tk.Frame(rightFrame, width=400, height=550, bg="red") #.grid(column=4, row=0)

#visualization

self.vis = Visualization(self.rightFrame, 400, 350, tk.RIGHT)

#self.vis.updateContourValue(400)

#left column

self.middleFrame = tk.Frame(root, width=400, height=550, bg="black") #.grid(column=0, columnspan=4, row=0)

self.middleFrame.pack(fill=tk.Y, expand=True)

#isosurfaces list

def addItem(color, volume, surface):

listitem = ListItem(self.listFrame, color, volume, surface)

self.listFrame = tk.Frame(self.middleFrame, width=400, height=500, bg="black") #.grid(column=0, columnspan=4, row=0)

self.listFrame.pack(fill=tk.BOTH, expand=True, side=tk.TOP)

addItem("#243", self.vis.getVolume(), self.vis.getSurface())

#preview

self.preview = Visualization(self.middleFrame, 200, 200, tk.BOTTOM)

#self.preview.updateContourValue(1500)

#histogram

self.histFrame = Histogram(self.leftFrame, 400, 400, tk.TOP, self.preview.getData())

#slider

def updateValue(self):

self.preview.updateContourValue(float(self.slider.get() ))

print "updated value"

self.timer = Timer(5.0, updateValue)

def sliderCallback(self):

self.timer.cancel()

self.timer.start() # after 30 seconds, "hello, world" will be printed

#if self._job:

#root.after_cancel(self._job)

#print "remove it"

#self._job = root.after(500, self.updateValue)

#def updateValue(value):

#print('horizontal: {v}'.format(v=value))

self.slider = tk.Scale(self.leftFrame, from_=0, to=256, orient=tk.HORIZONTAL, command=sliderCallback) #.grid(column=0, columnspan=3, row=1)

self.slider.pack(in_=self.leftFrame, fill=tk.X)

self.slider.set(200)

#add Isosurface button

def addIso():

addItem("#243", self.vis.getVolume(), self.vis.getSurface())

self.addButton = tk.Button(self.leftFrame, text="Add", command=addIso) #.grid(column=3, row=1)

self.addButton.pack(in_=self.leftFrame, side="right", pady=2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值