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

如何在Tkinter GUI中修改矩阵数值并在同一窗口展示更新结果

问题修正与实现代码

你当前代码的核心问题如下:

  • root.mainloop() 是窗口事件阻塞循环,写在它后面的矩阵构建、修改代码只会在窗口关闭后才执行,此时输入组件已销毁,无法正常获取输入值
  • Entry组件的get()方法返回的是字符串类型,直接执行+=5会触发类型错误
  • 没有将修改后的矩阵结果渲染回当前Tk窗口的逻辑

修正后的完整实现代码如下:

from tkinter import *
import numpy as np

root = Tk()
# 预留展示结果的标签组件
result_label = Label(root, text="修改后结果将展示在这里")
result_label.grid(row=3, column=0, columnspan=2, pady=10)

def process():
    # 拿到输入值并转成整数
    values = [int(e1.get()), int(e2.get()), int(e3.get()), int(e4.get())]
    # 构建2x2矩阵
    r = [
        [values[0], values[1]],
        [values[2], values[3]]
    ]
    # 执行指定修改操作
    r[0][1] += 5
    # 格式化结果输出到窗口
    show_text = f"修改后的矩阵:\n{r[0][0]}  {r[0][1]}\n{r[1][0]}  {r[1][1]}"
    result_label.config(text=show_text)

# 输入框组件
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root)

e1.grid(row=0, column=0, padx=10, pady=10)
e2.grid(row=0, column=1)
e3.grid(row=1, column=0, padx=10, pady=10)
e4.grid(row=1, column=1)

b = Button(root, text='Process', command=process)
b.grid(row=2, column=0, columnspan=2, sticky=E+W)

root.mainloop()
使用说明
  • 在4个输入框中分别输入整数,点击Process按钮
  • 按钮下方会直接展示r[0][1] +=5修改后的2x2矩阵内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:24:02