如何在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
相关产品推荐
相关产品推荐

