好的,所以 - 我有不到 24 小时的编程经验 - 这是我的第二天 - 所以请不要屠杀我。昨天我几乎花了一整天的时间试图弄清楚这一点,但所有的概念对我来说仍然有点滑 - 我希望有人愿意提供帮助。
我想根据几个条目小部件的输入进行计算,然后将其结果显示为标签(或仅文本)中的输出。
这是一张图片
这是一段代码
from tkinter import *
from tkinter.messagebox import *
root = Tk()
root.title("StoGram 1.0")
# Entry
symentry = Entry(root, width=10) #Symbol
enentry = Entry(root, width=10) #Entry
slentry = Entry(root, width=10) #Stop Loss
tpentry = Entry(root, width=10) #Take Profit
kbentry = Entry(root, width=10) #Bank Balance
rentry = Entry(root, width=10) #Max Risk
symentry.grid(row=1, column=3) #Symbol
enentry.grid(row=2, column=1) #Entry
slentry.grid(row=3, column=1) #Stop Loss
tpentry.grid(row=4, column=1) #Take Profit
kbentry.grid(row=5, column=1) #Bank Balance
kbentry.insert(0, "100000")
rentry.grid(row=6, column=1) #Max Risk
rentry.insert(0, "1")
# Calculate button to grid
calculate_Button = Button(root, text='Calculate', command=answer)
# Calculate button to grid
calculate_button.grid(row="4", column="3")
我试图弄清楚如何处理# Calculate button to grid calculate_Button = Button(root, text='Calculate', command=answer)
在尝试中,我已经玩过了def answer():
以及int
和str
.get()
以及其他一些事情。
但实际上,我只是一只拿着扳手锤的猴子,试图让东西工作,我不知道我在做什么。
任何建议都非常感谢。
我认为这可能会对您有所帮助。
import tkinter as tk
root = tk.Tk()
root.title("StoGram 1.0")
bank_balance = tk.StringVar()
max_risk =tk.StringVar()
entry = tk.StringVar()
stop_loss= tk.StringVar()
def answer():
output = (int(bank_balance.get())*int(max_risk.get()))/(int(entry.get())-int(stop_loss.get()))
print(output)
Output_label.config(text = str(output))
# Entry
symentry = tk.Entry(root, width=10) #Symbol
enentry = tk.Entry(root, width=10, textvariable = entry) #Entry
slentry = tk.Entry(root, width=10, textvariable = stop_loss) #Stop Loss
tpentry = tk.Entry(root, width=10) #Take Profit
kbentry = tk.Entry(root, width=10,textvariable = bank_balance) #Bank Balance
rentry = tk.Entry(root, width=10, textvariable = max_risk) #Max Risk
symentry_label = tk.Label(root, text = 'Symbol', font=('calibre',10))
enentry_label = tk.Label(root, text = 'Entry:', font=('calibre',10))
slentry_label = tk.Label(root, text = 'Stop Loss:', font=('calibre',10))
tpentry_label = tk.Label(root, text = 'Take Profit:', font=('calibre',10))
kbentry_label = tk.Label(root, text = 'Bank Balance:', font=('calibre',10))
rentry_label = tk.Label(root, text = 'Max Risk%', font=('calibre',10))
Buy_shares_label = tk.Label(root, text = 'Buy Shares:', font=('calibre',10))
Output_label = tk.Label(root, text = '', font=('calibre',10))
Rps_Label = tk.Label(root, text = 'Rps:', font=('calibre',10))
R_Label = tk.Label(root, text = 'R:', font=('calibre',10))
symentry_label.grid(row=1, column=3)
enentry_label.grid(row=3, column=1)
slentry_label.grid(row=4, column=1)
tpentry_label.grid(row=5, column=1)
kbentry_label.grid(row=6, column=1)
rentry_label.grid(row=7, column=1)
Rps_Label.grid(row=4,column=4)
Buy_shares_label.grid(row=5,column=4)
Output_label.grid(row=5,column=6)
R_Label.grid(row=6,column=4)
symentry.grid(row=2, column=3) #Symbol
enentry.grid(row=3, column=2) #Entry
slentry.grid(row=4, column=2) #Stop Loss
tpentry.grid(row=5, column=2) #Take Profit
kbentry.grid(row=6, column=2) #Bank Balance
kbentry.insert(0, "100000")
rentry.grid(row=7, column=2) #Max Risk
rentry.insert(0, "1")
# Calculate button to grid
calculate_Button = tk.Button(root, text='Calculate', command=answer)
# Calculate button to grid
calculate_Button.grid(row="5", column="3")
root.mainloop()
要进行计算,您需要首先创建一个函数,正如您所说,该函数被命名为 answer。def answer()
里面,你可以做所有的计算。
然后最重要的工作是从文本输入中提取值,因此我们需要创建变量来初始化它们tk.StringVar()
这将使变量成为一种可以在整个程序中使用的全局变量。然后我们需要将变量与需要使用textvariable = Variable Name
作为其参数之一的tk.Entry()
连接。
此外,我们需要将int()
变量转换为整数,因为我们从文本输入中获得的值是字符串的形式。