我在为Python程序创建GUI时遇到了一个小问题。你知道吗
在代码中,我实现了以下功能:
def simula_partita(modello, squadraCasa, squadraOspite, max_gol=10):
media_gol_casa = modello.predict(pd.DataFrame(data={'Squadra': squadraCasa,
'Avversaria': squadraOspite, 'Casa':1},
index=[1])).values[0]
media_gol_ospiti = modello.predict(pd.DataFrame(data={'Squadra': squadraOspite,
'Avversaria': squadraCasa, 'Casa':0},
index=[1])).values[0]
previsione_squadra = [[poisson.pmf(i, media_squadra) for i in range(0, max_gol+1)]
for media_squadra in [media_gol_casa, media_gol_ospiti]]
ris = np.outer(np.array(previsione_squadra[0]), np.array(previsione_squadra[1]))
print(ris)
return(ris)
它需要四个参数(modello、squadraCasa、squadraOspite、maxègol)。你知道吗
如果我在代码中调用它,像这样:
simula_partita(modello_poisson, 'Juventus', 'Liverpool', max_gol=4)
它运行平稳,并给我指定的输出。你知道吗
现在,在代码的最后,我尝试用以下代码来做一个GUI:
root = Tk()
m = StringVar()
c = StringVar()
o = StringVar()
g = StringVar()
sceltaModello = Entry(root, textvariable = m)
sceltaCasa = Entry(root, textvariable = c)
sceltaOspite = Entry(root, textvariable = o)
sceltaGol = Entry(root, textvariable = g)
sceltaModello.pack()
sceltaCasa.pack()
sceltaOspite.pack()
sceltaGol.pack()
m.set('modello_poisson')
c.set('Squadra di Casa')
o.set('Squadra Ospite')
g.set('Max Gol')
modello = m.get()
squadraCasa = c.get()
squadraOspite = o.get()
max_gol = g.get()
avvia = Button(root, text = "Avvia Simulazione", command = simula_partita)
avvia.pack()
root.mainloop()
我的愿望是得到“modello”、“squadraCasa”、“squadraOspite”和“max\u gol”作为Entry()输入,但它似乎不起作用,它给了我一个错误,即函数“simula\u partita”需要这些参数。你知道吗
你能帮我解决这个问题吗? 提前多谢了!你知道吗
函数由4个参数定义。当通过按钮中的命令选项调用函数时,必须传递这些参数。我不知道你的函数是做什么的,所以,我现在将替换它来打印4个参数。你知道吗
编辑:回答OP的具体问题
输入字段必须设置为字符串。我知道你想把参数作为变量传递。但是输入字段的输出将是一个字符串。你知道吗
您可以创建一个dict,其中字符串作为键,变量作为值(即下面代码中的“data”),然后像
data[m.get()]
一样发送变量。如果您有更多的变量可以提供,您可以添加它作为另一个键值对在字典中。你知道吗另外,第四个参数是一个int,因此在使用int()传递之前,我将其设置为int。你知道吗
尝试在完整代码中更改为这些行。你知道吗
我在4个条目中给出了以下内容
得到了一个输出
打印到我的控制台上。你知道吗
完整代码:
相关问题 更多 >
编程相关推荐