我在GUI中使用“after”方法时遇到了麻烦。 目标是创建一个循环,用给定的输入变量计算“流量”。 到目前为止,我没有设法让我的代码运行,文档在“之后”或此帖Tkinter only calls after_idle once
我的代码:
import Tkinter as tk
from Tkinter import *
import ttk
import tkMessageBox
class Regeln():
def __init__(self):
bla=1
def lesen(self,faktor,stromdichte,flaeche,anzahl,elektronen,konzentration):
self.faktor=faktor
self.stromdichte=stromdichte
self.flaeche=flaeche
self.anzahl=anzahl
self.elektronen=elektronen
self.konzentration=konzentration
try:
self.faktor=float(self.faktor)
self.stromdichte=float(self.stromdichte)
self.flaeche=float(self.flaeche)
self.anzahl=float(self.anzahl)
self.elektronen=float(self.elektronen)
self.konzentration=float(self.konzentration)
except:
tkMessageBox.showerror("Achtung!","Nur Zahlen eingeben!")
try:
1/(self.faktor*self.stromdichte*self.flaeche*self.anzahl*self.elektronen*self.konzentration)
except:
tkMessageBox.showerror("Achtung!","Nur Werte größer 0 eingeben!")
self.algorithmus()
def algorithmus(self):
flow=self.faktor*self.stromdichte*self.elektronen*60/(96485.34*self.konzentration*0.75/100)*self.flaeche*self.anzahl/1000
print flow
self.after(1500,self.algorithmus)
有了这个,我得到了一个“AttributeError”。任何人都知道如何让它运行?
答案 0 :(得分:2)
after
是所有tkinter小部件上都可用的方法。在您的具体情况下,self
不是小部件,因此自然不会有这种方法。
您需要从现有小部件中调用after
。例如,如果您最初使用以下内容创建GUI:
root = tk.Tk()
您稍后可以像这样致电after
:
root.after(...)