簡體   English   中英

從Spinbox獲取變量(Python)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM