我已经稍微重新组织了您的代码,这样它就可以在您按下按钮或点击Enter时调用calculate方法。在import tkinter as tk

from tkinter import ttk

class Adder(ttk.Frame):

"""The adders gui and functions."""

def __init__(self, parent, *args, **kwargs):

ttk.Frame.__init__(self, parent, *args, **kwargs)

self.root = parent

self.init_gui()

def on_quit(self):

"""Exits program."""

tk.quit()

def calculate(self, *args):

"""Calculates the sum of the two inputted numbers."""

num1 = int(self.num1_entry.get())

num2 = float(self.num2_entry.get())

num3 = ((num1/2000) * num2)

self.answer_label['text'] = num3

def init_gui(self):

self.root.title('Breakbulk Rate Calculator')

self.root.option_add('*tearOff', 'FALSE')

self.grid(column=0, row=0, sticky='nsew')

self.menubar = tk.Menu(self.root)

self.menu_file = tk.Menu(self.menubar)

self.menu_file.add_command(label='Exit', command=self.on_quit)

self.menu_edit = tk.Menu(self.menubar)

self.menubar.add_cascade(menu=self.menu_file, label='File')

self.menubar.add_cascade(menu=self.menu_edit, label='Edit')

self.root.config(menu=self.menubar)

self.num1_entry = ttk.Entry(self, width=5)

self.num1_entry.grid(column=1, row = 2)

self.num2_entry = ttk.Entry(self, width=5)

self.num2_entry.grid(column=3, row=2)

self.calc_button = ttk.Button(self, text='Calculate',

command=self.calculate)

self.calc_button.grid(column=0, row=3, columnspan=4)

self.answer_frame = ttk.LabelFrame(self, text='Answer',

height=100)

self.answer_frame.grid(column=0, row=4, columnspan=4, sticky='nesw')

self.answer_label = ttk.Label(self.answer_frame, text='')

self.answer_label.grid(column=0, row=0)

# Labels that remain constant throughout execution.

ttk.Label(self, text='Breakbulk Rate Calculator').grid(column=0, row=0,

columnspan=4)

ttk.Label(self, text='Weight').grid(column=0, row=2,

sticky='w')

ttk.Label(self, text='Rate').grid(column=2, row=2,

sticky='w')

ttk.Separator(self, orient='horizontal').grid(column=0,

row=1, columnspan=4, sticky='ew')

for child in self.winfo_children():

child.grid_configure(padx=5, pady=5)

self.root.bind('', lambda event: self.calculate())

if __name__ == '__main__':

root = tk.Tk()

Adder(root)

root.mainloop()

为了为.bind创建一个带有正确签名的回调,我使用了一个lambda函数,该函数简单地丢弃了传递给它的事件对象。在

我还去掉了邪恶的from tkinter import *通配符导入。在

Logo

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。

更多推荐