Note that there are some explanatory texts on larger screens.

plurals
  1. POPython: variable is not correctly initialized?
    primarykey
    data
    text
    <p>I wrote the following code in python</p> <pre><code>self._job = None #slider def sliderCallback(self): if self._job: </code></pre> <p>And I get this error message</p> <pre><code>AttributeError: 'str' object has no attribute '_job' </code></pre> <p>why ? I thought I have initialized the variable before...</p> <p><strong>Update</strong> Same issue with Timer variable</p> <pre><code>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) </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload