[英]Why isn't the variable from my spinbox returning? (python, tkinter)
[英]Get variable from spinbox (Python)
finestra = Tk()
var = IntVar() #i did the same with the others variable except for the spin
cpu = Label(text="Seleziona la generazione del tuo processore:").pack()
core = Radiobutton(finestra,text="Core",value=1, variable=var)
core.pack()
x = Radiobutton(finestra,text="2 duo/ 2 quad",value=5/3, variable=var)
x.pack()
serie = Label(text="Seleziona il tuo processore:").pack()
i3 = Radiobutton(finestra,text="i3 xxxx/Pentium",value=51, variable=ivar)
i3.pack()
i5 = Radiobutton(finestra,text="i5 xxxx",value=65, variable=ivar)
i5.pack()
i7 = Radiobutton(finestra,text="i7 xxxx",value=75, variable=ivar)
i7.pack()
brand = Label(text="Seleziona la tua scheda video:").pack()
Radiobutton(finestra,text="GTX 1050", value=70,variable=gvar).pack()
Radiobutton(finestra,text="GTX 1050ti", value=75,variable=gvar).pack()
Label(text="Seleziona il numero di banchi di RAM e il loro quantitativo")
ram = Spinbox(finestra, from_=1, to=4).pack()
def callback(*args):
result.set(var.get()*ivar.get()+gvar.get()+ram.get())
var.trace("w", callback)
ivar.trace("w", callback)
gvar.trace("w",callback)
result = StringVar()
tdp = Label(textvariable=result).pack()
finestra.mainloop()
好吧,我希望在微調框內插入1或... 4時,將此值與gvar以及ivar和var的乘積求和。 我還有另一個問題。 在第6行中有一個小數,但是當我運行程序時即使它沒有給出錯誤,它也理解為好像是5(不是5/3)。 您能解釋一下我如何使用有理數嗎? PS:對不起,我的意大利英語
修復了一些問題。 ram = Spin .... pack()不返回旋轉對象,但返回None。 5/3問題是,除非您在至少一個參數上加上小數點(5.0.3起作用),否則Python假定整數除法。 這應該可以幫助您。
from tkinter import *
finestra = Tk()
var = DoubleVar(value=5.0/3) #i did the same with the others variable except for the spin
ivar = IntVar(value=65)
gvar = IntVar(value=70)
spin = StringVar()
cpu = Label(text="Seleziona la generazione del tuo processore:").pack()
core = Radiobutton(finestra,text="Core",value=1, variable=var)
core.pack()
x = Radiobutton(finestra,text="2 duo/ 2 quad",value=5.0/3, variable=var)
x.pack()
serie = Label(text="Seleziona il tuo processore:").pack()
i3 = Radiobutton(finestra,text="i3 xxxx/Pentium",value=51, variable=ivar)
i3.pack()
i5 = Radiobutton(finestra,text="i5 xxxx",value=65, variable=ivar)
i5.pack()
i7 = Radiobutton(finestra,text="i7 xxxx",value=75, variable=ivar)
i7.pack()
brand = Label(text="Seleziona la tua scheda video:").pack()
Radiobutton(finestra,text="GTX 1050", value=70,variable=gvar).pack()
Radiobutton(finestra,text="GTX 1050ti", value=75,variable=gvar).pack()
Label(text="Seleziona il numero di banchi di RAM e il loro quantitativo")
ram = Spinbox(finestra, from_=1, to=4, textvariable=spin).pack()
def callback(*args):
result.set(var.get()*ivar.get()+gvar.get()+int(spin.get()))
var.trace("w", callback)
ivar.trace("w", callback)
gvar.trace("w",callback)
spin.trace("w", callback)
result = StringVar(value='none')
Label(textvariable=result).pack()
finestra.mainloop()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.