You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将计算逻辑整合到Tkinter 3×3网格GUI并显示结果?

解决Tkinter网格计算结果显示问题

我现有一段Tkinter代码,能生成3×3的输入网格,点击"Calculate"按钮仅会遍历输入框值并换行打印:

from tkinter import *

rows = []
for i in range(3):
    cols = []
    for j in range(3):
        e = Entry(relief=RIDGE)
        e.grid(row=i, column=j, sticky=NSEW)
        e.insert(END, '%d.%d' % (i, j))
        cols.append(e)
    rows.append(cols)

def onPress():
    for row in rows:
        for col in row:
            col.get(),
        print()

Button(text='Calculate', command=onPress).grid()
mainloop()

我需要整合以下计算逻辑:

x = r_1[0] + r_2[0] - r_3[0]
y = r_1[1] + r_2[1] - r_3[1]
z = r_1[2] + r_2[2] - r_3[2]

num = x + y - z

list = [x, y, z]

i = 0
while (i < 3):
    fin = 2000*list[i]*num
    print(fin)
    i = i + 1

其中r_1[0]对应网格第一行第一个输入框的值,r_2[0]对应第二行第一个输入框的值,以此类推。要求点击按钮后,将计算得到的三个结果显示在"Calculate"按钮下方的网格区域中。


修改后的完整代码

from tkinter import *

rows = []
for i in range(3):
    cols = []
    for j in range(3):
        e = Entry(relief=RIDGE)
        e.grid(row=i, column=j, sticky=NSEW)
        e.insert(END, '%d.%d' % (i, j))
        cols.append(e)
    rows.append(cols)

# 创建结果显示标签,布局在按钮下方
result_labels = []
for j in range(3):
    lbl = Label(text="结果", relief=SUNKEN)
    lbl.grid(row=4, column=j, sticky=NSEW)
    result_labels.append(lbl)

def onPress():
    # 读取输入框内容并转为数值类型
    r_1 = [float(row[0].get()) for row in rows]
    r_2 = [float(row[1].get()) for row in rows]
    r_3 = [float(row[2].get()) for row in rows]
    
    # 执行计算逻辑
    x = r_1[0] + r_2[0] - r_3[0]
    y = r_1[1] + r_2[1] - r_3[1]
    z = r_1[2] + r_2[2] - r_3[2]
    
    num = x + y - z
    calc_list = [x, y, z]
    
    # 更新结果标签内容
    for i in range(3):
        fin = 2000 * calc_list[i] * num
        # 保留两位小数优化显示效果
        result_labels[i].config(text=f"{fin:.2f}")

# 调整按钮布局,让按钮横跨三列
Button(text='Calculate', command=onPress).grid(row=3, column=0, columnspan=3, sticky=NSEW)
mainloop()

关键改动说明

  • 新增result_labels列表,用于存储三个结果显示标签,固定布局在按钮下方的第4行
  • 重构onPress函数:
    • 将输入框的字符串内容转为float类型,避免计算时出现类型错误
    • 按照需求完成全部计算逻辑
    • 遍历结果标签,将计算结果更新到标签文本中
  • 调整按钮布局,设置columnspan=3让按钮横跨三列,提升界面美观度

内容的提问来源于stack exchange,提问作者Thando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 13:05:19