如何从tkinter中的条目中获取可用作函数的数据?

2022-05-23 00:00:00 python function tkinter curve-fitting

问题描述

我正在制作一个用于数学函数数据拟合的Python脚本,比如a*sin(b*x)与给定的数据。我计划在程序已经运行时,由用户在外部输入此数学函数。我通过tkinter中的条目或文本框输入这个数学函数。这完全没有问题,但是当我使用.get()函数提取数据时,它以字符串格式返回输入的数学函数。但这对未来的拟合过程没有用处。根据我的理解,我应该有一个定义的函数形式,如

def F(x,a,b):
   return a*sin(b*x)

但如果从.get()条目显示中获取此返回值,则它将是a*sin(b*x)无法进一步使用的简单字符串。

如果任何人有任何建议,请帮助我解决此问题。先谢谢你。☺️


解决方案

您可以使用EXEC关键字将字符串作为Python代码运行(认为这不太安全,所以要小心)

import tkinter as tk
...
Entry = tk.Entry(root)
...
def Get_Equation():
    Text = Entry.get
    result = eval(Text)

这将在全局范围内运行代码,因此,如果用户输入a*sin(b*x),则只需要在程序中定义的变量,例如

import tkinter as tk
...
Entry = tk.Entry(root)
...
def Get_Equation():
    Text = Entry.get

    a = 5
    b = 3
    x = 10

    result = eval(Text)

相关文章