Python int(variable.entry.get)在使用Tkinter时返回PY_VAR0
我正试图用Tkinter编写一些代码。我目前正在尝试创建一个使用条目值(ttk.entry)的变量,但每当我尝试将该值转换为整数时,该值就会变成Python int(variable.entry.get)在使用Tkinter时返回PY_VAR0,python,tkinter,Python,Tkinter,我正试图用Tkinter编写一些代码。我目前正在尝试创建一个使用条目值(ttk.entry)的变量,但每当我尝试将该值转换为整数时,该值就会变成PY\u VAR0。代码如下: import tkinter from tkinter import * from tkinter import ttk from fractions import Fraction import time def fracalculator(): def fracalculate(): fracdec
PY\u VAR0
。代码如下:
import tkinter
from tkinter import *
from tkinter import ttk
from fractions import Fraction
import time
def fracalculator():
def fracalculate():
fracdec.set(int(numfrac.entry.get) / int(denfrac.entry.get()))
fracper.set((int(numfrac.entry.get) / int(denfrac.entry.get()))*100)
print(fracdec)
print(fracper)
ttk.Label(mainframe, text="Your results:").grid(column=1, row=7, sticky=W)
ttk.Label(mainframe, textvariable=numfrac).grid(column=1, row=9, sticky=W)
ttk.Label(mainframe, text="/").grid(column=1, row=9)
ttk.Label(mainframe, textvariable=denfrac).grid(column=1, row=9, sticky=E)
ttk.Label(mainframe, text="=").grid(column=2, row=9, sticky=W)
ttk.Label(mainframe, textvariable=fracdec).grid(column=2, row=9)
ttk.Label(mainframe, text="=").grid(column=2, row=9, sticky=E)
ttk.Label(mainframe, textvariable=fracper).grid(column=3, row=9)
numfrac = IntVar()
denfrac = IntVar()
null = StringVar()
null2 = StringVar()
null3 = StringVar()
root.withdraw()
fracalc = tkinter.Tk()
fracalc.title("SuperCalculator")
mainframe = ttk.Frame(fracalc, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
ttk.Label(mainframe, text="Numerator (Top)").grid(column=1, row=1, sticky=(W))
ttk.Label(mainframe, text="Denominator (Bottom)").grid(column=1, row=3, sticky=(W))
ttk.Label(mainframe, textvariable=null).grid(column=2, row=2)
ttk.Label(mainframe, textvariable=null2).grid(column=2, row=4)
ttk.Label(mainframe, textvariable=null3).grid(column=2, row=6)
numfrac.entry = ttk.Entry(mainframe, width=20, textvariable=numfrac)
numfrac.entry.grid(column=3, row=1, sticky=(E))
denfrac.entry = ttk.Entry(mainframe, width=20, textvariable=denfrac)
denfrac.entry.grid(column=3, row=3, sticky=(E))
ttk.Button(mainframe, text="Calculate!", command=fracalculate).grid(column=2, row=5)
root = tkinter.Tk()
root.title("SuperCalculator")
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
fracdec = StringVar()
fracper = StringVar()
ttk.Label(mainframe, text="Welcome to SuperCalculator!").grid(column=2, row=1, sticky=(W, E))
ttk.Button(mainframe, text="Start with a Fraction",
command=fracalculator).grid(column=1, row=3)
root.mainloop()
我看到了一些事情
def fracalculator():
中没有任何内容,因此代码的其余部分可能会抛出错误。我只是把pass
放在里面测试你的代码root=tkinter.Tk()
移动到顶部的某个位置。它不应该超过任何引用root的内容,在您的情况下,它前面有root.draw()
,这将导致错误fracdec.set(int(numfrac.entry.get)/int(denfrac.entry.get())
frapper.set((int(numfrac.entry.get)/int(denfrac.entry.get())*100)
但我会使用:
fracdec = int(numfracentry.get()) / int(denfracentry.get())
fracper = int(numfracentry.get()) / (int(denfracentry.get())*100)
.get()
获取intVar对象的值import tkinter
from tkinter import *
from tkinter import ttk
from fractions import Fraction
import time
root = tkinter.Tk()
root.title("SuperCalculator")
def fracalculator():
pass
def fracalculate():
fracdec = int(numfrac.entry.get()) / int(denfrac.entry.get())
fracper = int(numfrac.entry.get()) / (int(denfrac.entry.get())*100)
print(fracdec)
print(fracper)
ttk.Label(mainframe, text="Your results:").grid(column=1, row=7, sticky=W)
ttk.Label(mainframe, textvariable=numfrac).grid(column=1, row=9, sticky=W)
ttk.Label(mainframe, text="/").grid(column=1, row=9)
ttk.Label(mainframe, textvariable=denfrac).grid(column=1, row=9, sticky=E)
ttk.Label(mainframe, text="=").grid(column=2, row=9, sticky=W)
ttk.Label(mainframe, textvariable=fracdec).grid(column=2, row=9)
ttk.Label(mainframe, text="=").grid(column=2, row=9, sticky=E)
ttk.Label(mainframe, textvariable=fracper).grid(column=3, row=9)
numfrac = IntVar()
denfrac = IntVar()
null = StringVar()
null2 = StringVar()
null3 = StringVar()
root.withdraw()
fracalc = tkinter.Tk()
fracalc.title("SuperCalculator")
mainframe = ttk.Frame(fracalc, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
ttk.Label(mainframe, text="Numerator (Top)").grid(column=1, row=1, sticky=(W))
ttk.Label(mainframe, text="Denominator (Bottom)").grid(column=1, row=3, sticky=(W))
ttk.Label(mainframe, textvariable=null).grid(column=2, row=2)
ttk.Label(mainframe, textvariable=null2).grid(column=2, row=4)
ttk.Label(mainframe, textvariable=null3).grid(column=2, row=6)
numfrac.entry = ttk.Entry(mainframe, width=20, textvariable=numfrac)
numfrac.entry.grid(column=3, row=1, sticky=(E))
denfrac.entry = ttk.Entry(mainframe, width=20, textvariable=denfrac)
denfrac.entry.grid(column=3, row=3, sticky=(E))
ttk.Button(mainframe, text="Calculate!", command=fracalculate).grid(column=2, row=5)
mainframe = ttk.Frame(root, padding="3 3 12 12")
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
fracdec = StringVar()
fracper = StringVar()
ttk.Label(mainframe, text="Welcome to SuperCalculator!").grid(column=2, row=1, sticky=(W, E))
ttk.Button(mainframe, text="Start with a Fraction",
command=fracalculator).grid(column=1, row=3)
root.mainloop()