试图建立一个GUI,用户单击该按钮并在相关的行和列中显示设置信息。
打印无法达到预期的效果,而且我对GUI的理解还不够,无法尝试其他方法。我是菜鸟,所以我很迷路。
normal = {'Protein' : {'32.50'},
'Carbohydrates' : {'60'},
'Fat' : {'40.86'}}
from tkinter import *
from tkinter import ttk
root = Tk()
root.title('Diet Information')
frame = ttk.Frame(root, padding='150 150 300 300')
frame.grid(column=0, row=0, sticky=(N, W, E, S))
frame.columnconfigure(0, weight=1)
frame.rowconfigure(0, weight=1)
d_label = ttk.Label(frame, text='Selected diet: ')
d_label.grid(column=1, row=3, sticky=W)
p_label = ttk.Label(frame, text='Protein (g): ')
p_label.grid(column=1, row=4, sticky=W)
c_label = ttk.Label(frame, text='Carbohydrates (g): ')
c_label.grid(column=1, row=5, sticky=W)
f_label = ttk.Label(frame, text='Fat (g): ')
f_label.grid(column=1, row=6, sticky=W)
k_label = ttk.Label(frame, text='Kilojoules (kJ): ')
k_label.grid(column=1, row=7, sticky=W)
s_label = ttk.Label(frame, text='Select a diet to display:')
s_label.grid(column=3, row=8, sticky=W)
n_button = ttk.Button(frame, text='Normal', command=print(normal))
n_button.grid(column=3, row=9, sticky=W)
我希望“正常”按钮返回每个标签所需的信息。然后,我将对多个按钮使用此方法。
答案 0 :(得分:0)
在tkinter中,没有打印语句,而是有标签。就像您要打印变量print(fred)
一样,您可以将Label设置为变量。拥有ttk.Label(frame, text)
而不是拥有ttk.Label(frame, textvariable=variable)
。
为了正确使用带有变量的标签,您需要正确设置变量。说我仍然要显示变量。首先,在将其放入标签之前,需要对其进行设置。您需要对其进行设置,以接受将要提供的数据类型。这样的一些示例是StringVar(),IntVar(),BooleanVar()和DoubleVar()。他们基本上只是声明数据将是字符串(StringVar),Integer(IntVar),Boolean(BooleanVar)或float(DoubleVar)。假设您有15克碳水化合物的数据。那是一个整数,因此您将使用IntVar()。全部设置的方式如下所示。
variable = IntVar()
variable.set(carbs)
ttk.Label(frame, textvariable=variable).pack()
在此示例中,carbs是用户输入的浮点值,而variable是您在标签中输入的实际变量。希望这对您有所帮助,编码愉快!
快速编辑:向按钮分配功能时,按钮最有效,因此,我建议设置一个功能以使用常规值(如果要使用的数据)并将其分配给您要使用的变量放入您的标签中。