Python Stringvar实例没有_trunc__方法

Python Stringvar实例没有_trunc__方法,python,instances,Python,Instances,为了好玩(也为了学习…),我试着写一个程序,它接受3个输入,a,b和c,并返回二次公式的解。 现在,我得到一个错误,说StringVar实例没有属性“trunc” 我最初将输入变量设置为IntVar,并得到了相同类型的错误,IntVar实例没有trunc属性 import Tkinter from math import * def quadprogram(a,b,c): x1=((-1*int(b)+(sqrt((int(b)**2)-(4*int(a)*int(c))))/2*

为了好玩(也为了学习…),我试着写一个程序,它接受3个输入,a,b和c,并返回二次公式的解。 现在,我得到一个错误,说StringVar实例没有属性“trunc” 我最初将输入变量设置为IntVar,并得到了相同类型的错误,IntVar实例没有trunc属性

import Tkinter
from math import *


def quadprogram(a,b,c):

    x1=((-1*int(b)+(sqrt((int(b)**2)-(4*int(a)*int(c))))/2*int(a)))
    x2=((-1*int(b)-(sqrt((int(b)**2)-(4*int(a)*int(c))))/2*int(a)))

    my_answer="(x+"+str(-1*x1)+")(x+"+str(-1*x2)+")"
    xinputs= "x1= "+ str(x1) + " and x2= "+str(x2)
    answers= my_answer+", "+ xinputs
    return answers

class quadratic(Tkinter.Tk):
    def __init__(self,parent):
        Tkinter.Tk.__init__(self,parent)
        self.parent=parent
        self.initialize()

    def initialize(self):
        self.grid()

        self.entryVariableA = Tkinter.StringVar()
        self.entry= Tkinter.Entry(self, textvariable= self.entryVariableA)
        self.entry.grid(column=0,row=2,sticky="W")
        self.entry.bind("<Return>",self.OnPressEnter)
        self.entryVariableA.set(u"a")

        self.entryVariableB = Tkinter.StringVar()
        self.entry= Tkinter.Entry(self, textvariable= self.entryVariableB)
        self.entry.grid(column=0,row=3,sticky="W")
        self.entry.bind("<Return>",self.OnPressEnter)
        self.entryVariableB.set(u"b")

        self.entryVariableC = Tkinter.StringVar()
        self.entry= Tkinter.Entry(self, textvariable= self.entryVariableC)
        self.entry.grid(column=0,row=4,sticky="W")
        self.entry.bind("<Return>",self.OnPressEnter)
        self.entryVariableC.set(u"c")




        button = Tkinter.Button(self, text= u"Solve!", command=self.OnButtonClick)
        button.grid(column=1,row=5)

        self.labelVariable= Tkinter.StringVar()
        self.Eq_labelVariable=Tkinter.StringVar()
        self.Ans_labelVariable=Tkinter.StringVar()

        label= Tkinter.Label(self, textvariable=self.labelVariable,anchor= 'w', fg='black',bg='blue')
        label.grid(column=0,row=0, columnspan=2, sticky='EW')
        self.labelVariable.set(u"Enter Equation Here...")

        Eq_label=Tkinter.Label(self, textvariable=self.Eq_labelVariable,anchor='w', fg='white', bg='blue')
        Eq_label.grid(column=0, row=1, columnspan=2, sticky='EW')
        self.Eq_labelVariable.set(u"For A(x^2)+B(x)+C")

        Ans_label=Tkinter.Label(self, textvariable=self.Ans_labelVariable,anchor='w', fg='black', bg='green')
        Ans_label.grid(column=0, row=1, columnspan=2, sticky='EW')
        self.Ans_labelVariable.set(u"Answer will show here")


        self.grid_columnconfigure(0,weight=1)
        self.resizable(True, False)
        self.update()
        self.geometry(self.geometry())
        self.entry.focus_set()
        self.entry.selection_range(0,Tkinter.END)



    def OnButtonClick(self):
        self.Ans_labelVariable.set(quadprogram(self.entryVariableA,self.entryVariableB,self.entryVariableC)+"(this program works?!)")
        self.entry.focus_set()
        self.entry.selection_range(0, Tkinter.END)

    def OnPressEnter(self,event):
        self.labelVariable.set(self.entryVariableA.get())


if __name__=='__main__':
    app=quadratic(None)
    app.title("Quadratic Solver")
    app.geometry("300x300")
    app.mainloop()
导入Tkinter
从数学导入*
def四元程序(a、b、c):
x1=(-1*int(b)+(sqrt((int(b)**2)-(4*int(a)**int(c)))/2*int(a)))
x2=(-1*int(b)-(sqrt((int(b)**2)-(4*int(a)**int(c)))/2*int(a)))
my_answer=“(x+”+str(-1*x1)+”)(x+“+str(-1*x2)+”)”
xinputs=“x1=“+str(x1)+”和x2=“+str(x2)
答案=我的答案+“,”+Xinput
答复
二次类(Tkinter.Tk):
定义初始化(自身,父级):
Tkinter.Tk.\uuuuu init\uuuuuu(自,父)
self.parent=parent
self.initialize()
def初始化(自):
self.grid()
self.entryVariableA=Tkinter.StringVar()
self.entry=Tkinter.entry(self,textvariable=self.entryVariableA)
self.entry.grid(列=0,行=2,sticky=“W”)
self.entry.bind(“,self.on按Enter键)
自入口变量集(u“a”)
self.entryVariableB=Tkinter.StringVar()
self.entry=Tkinter.entry(self,textvariable=self.entryVariableB)
self.entry.grid(列=0,行=3,sticky=“W”)
self.entry.bind(“,self.on按Enter键)
self.entryVariableB.set(u“b”)
self.entryVariableC=Tkinter.StringVar()
self.entry=Tkinter.entry(self,textvariable=self.entryVariableC)
self.entry.grid(列=0,行=4,sticky=“W”)
self.entry.bind(“,self.on按Enter键)
self.entryVariableC.set(u“c”)
button=Tkinter.button(self,text=u“Solve!”,command=self.OnButtonClick)
button.grid(列=1,行=5)
self.labelVariable=Tkinter.StringVar()
self.Eq_labelVariable=Tkinter.StringVar()
self.Ans_labelVariable=Tkinter.StringVar()
label=Tkinter.label(self,textvariable=self.labelVariable,anchor='w',fg='black',bg='blue')
label.grid(column=0,row=0,columnspan=2,sticky='EW')
self.labelVariable.set(u“在此处输入公式…”)
Eq_label=Tkinter.label(self,textvariable=self.Eq_labelVariable,anchor='w',fg='white',bg='blue')
Eq_label.grid(列=0,行=1,列span=2,粘性=EW')
自变量(u)表示A(x^2)+B(x)+C)
Ans_label=Tkinter.label(self,textvariable=self.Ans_labelVariable,anchor='w',fg='black',bg='green')
Ans_label.grid(列=0,行=1,列span=2,粘性=EW')
self.Ans_labelVariable.set(u“答案将显示在此处”)
self.grid\u column配置(0,权重=1)
self.reshable(真、假)
self.update()
self.geometry(self.geometry())
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def ON按钮单击(自身):
self.Ans_labelVariable.set(四元程序(self.entryVariableA,self.entryVariableB,self.entryVariableC)+(这个程序工作?!)
self.entry.focus_set()
self.entry.selection_范围(0,Tkinter.END)
def OnPressEnter(自我,事件):
self.labelVariable.set(self.entryVariableA.get())
如果“名称”=“\uuuuuuuu主要”:
app=二次型(无)
附录标题(“二次解算器”)
附录几何(“300x300”)
app.mainloop()
有人想过避免这种情况吗?
感谢您的帮助…

创建类时,所有内容都将初始化,包括条目小部件中的任何值。创建方法来检索条目小部件中的值,并将这些方法排除在初始化之外。我会在几分钟内用代码更新答案