我正在尝试使用python做一个简单的程序,但它不起作用。在倒数第二个字符串中,我不知道如何从Radiobutton获取变量。
from tkinter import*
import tkinter.messagebox
finestra = Tk()
finestra.geometry("1000x800+100+0")
finestra.title("Consumo PC")
var = IntVar()
ivar = IntVar()
cpu = Label(text="Seleziona la generazione del tuo processore:").pack()
kaby = Radiobutton(finestra,text="Kabylake",value=1, variable=var).pack()
sky = Radiobutton(finestra,text="SkyLake",value=2, variable=var).pack()
ivy = Radiobutton(finestra,text="IvyBridge",value=3, variable=var).pack()
serie = Label(text="Seleziona il tuo processore:").pack()
i3 = Radiobutton(finestra,text="i3 xxxx",value=6, variable=ivar).pack()
i5 = Radiobutton(finestra,text="i5 xxxx",value=4, variable=ivar).pack()
i7 = Radiobutton(finestra,text="i7 xxxx",value=5, variable=ivar).pack()
brand = Label(text="Seleziona il brand della tua scheda video:").pack()
amd = Radiobutton(finestra,text="AMD", value=7,variable=3).pack()
nvidia = Radiobutton(finestra,text="Nvidia", value=8,variable=3).pack()
kaby = 1
sky = 1
ivy = 11/10
i3 = 51
i5 = 65
i7 = 75
tdp = Label(text=var.get()+ivar.get()).pack()
finestra.mainloop()
答案 0 :(得分:1)
现在,您只需在创建用户界面时更改标签的文本,并且由于没有选择这些文本,您将获得0。该文本应在每python label_image.py exact_path_to_your_testimage_file.jpg
更新/ var
更改。
可以通过为ivar
和var
添加trace来实现这一目标。
ivar
这样,在每个按钮选择上,您将获得所需的值。
现在剩下一件事,就是更新结果标签。有几种方法可以更新标签文本,但由于我们使用的是变量类,因此请使用def callback(*args):
print(var.get()+ivar.get())
var.trace("w", callback)
ivar.trace("w", callback)
进行操作。
StringVar
此外,您应该注意几件事情。
其中一个是通配符导入(def callback(*args):
result.set(var.get()+ivar.get())
result = StringVar()
tdp = Label(textvariable=result).pack()
^^^^^^^^ note that this not text but textvariable!
用法)
关于这一个,您可以阅读this问题的答案。
另一个是,在同一行使用from tkinter import *
。这会将pack()
分配给您的所有变量(None
,cpu
,kaby
等。)
关于这一个,您可以阅读this问题的答案。