在Python上将数据返回到我的GUI应用程序

在Python上将数据返回到我的GUI应用程序,python,database,user-interface,tkinter,Python,Database,User Interface,Tkinter,我再次来到这个令人敬畏的社区寻求帮助。 我发现了一些类似的问题,但并非完全如此 我用Python编写了一个程序,porpouse是一个DITATIC工具(因为商业软件非常昂贵) 我的代码已经完成了,现在我正试图把它放在一个简单的图形用户界面给我的学生。(顺便说一下,我用的是tkinter) 下面的代码是其中的一部分,我调用tk应用程序通过导入向导导入数据,它将数据存储为数据帧 import tkinter as tk from tkinter import filedialog import p

我再次来到这个令人敬畏的社区寻求帮助。 我发现了一些类似的问题,但并非完全如此

我用Python编写了一个程序,porpouse是一个DITATIC工具(因为商业软件非常昂贵)

我的代码已经完成了,现在我正试图把它放在一个简单的图形用户界面给我的学生。(顺便说一下,我用的是tkinter)

下面的代码是其中的一部分,我调用tk应用程序通过导入向导导入数据,它将数据存储为数据帧

import tkinter as tk
from tkinter import filedialog
import pandas as pd
import numpy as np

#import data
ascii_well=filedialog.askopenfilename()
df_test=pd.read_csv(ascii_well, sep="\s+", index_col=0, na_values=-999.25)

print(df_teste)

Out[5]: 
       a  b   c
 IDX                  
 0      2.1   2.2   30
 1      2.2   2.3  150
我想在GUI中放置的是一种显示此数据帧的方法(如果更易于实现,可以改为数组)。但我不想只是向用户显示数据。我想实现的是一种方式,最终用户不仅可以看到数据,还可以更改数据帧的值

import tkinter as tk
from tkinter import filedialog
import pandas as pd
import numpy as np

#import data
ascii_well=filedialog.askopenfilename()
df_test=pd.read_csv(ascii_well, sep="\s+", index_col=0, na_values=-999.25)

print(df_teste)

Out[5]: 
       a  b   c
 IDX                  
 0      2.1   2.2   30
 1      2.2   2.3  150
举个简单的例子

假设用户希望将de值2.1(列“a”,IDX=0)更改为3

我正在spyder、Python3上编写代码


谢谢,伙计们

下面是一个简单的示例,说明如何使用用户数据的
条目
小部件从tkinter GUI操作变量

这个示例非常简单,但应该提供一个很好的示例,说明如何从用户获取数据,并将其保存到变量中,然后显示该数据

您可以修改这些方法以使用您的数据库,然后从那里开始

import tkinter as tk

class tester(tk.Frame):
    def __init__(self, parent, *args, **kwargs):
        tk.Frame.__init__(self, parent, *args, **kwargs)       

        self.parent = parent
        self.my_var = ""
        self.ent0 = tk.Entry(self.parent)
        self.ent0.pack()

        self.btn1 = tk.Button(self.parent, text="Save Values", command = self.save_values)
        self.btn1.pack()
        self.btn2 = tk.Button(self.parent, text="Load Values", command = self.load_values)
        self.btn2.pack()

    def save_values(self):
        print(self.ent0.get())
        self.my_var = self.ent0.get()
        self.ent0.delete(0, tk.END)

    def load_values(self):

        self.ent0.delete(0, tk.END)
        self.ent0.insert(tk.END, self.my_var)


if __name__ == "__main__":
    root = tk.Tk()
    app = tester(root)
    root.mainloop()
根据您的评论,我已在下面制作了此代码的非类版本:

import tkinter as tk


root = tk.Tk()

my_var = ""
ent0 = tk.Entry(root)
ent0.pack()

def save_values():
    global my_var, ent0
    my_var = ent0.get()
    ent0.delete(0, tk.END)

def load_values():
    global my_var, ent0
    ent0.delete(0, tk.END)
    ent0.insert(tk.END, my_var)

btn1 = tk.Button(root, text="Save Values", command = save_values)
btn1.pack()
btn2 = tk.Button(root, text="Load Values", command = load_values)
btn2.pack()

root.mainloop()

请查看我对一个类似问题的回答,可能是重复的,我们还需要更多的代码来测试。当前如何操作数据帧。这可以转换为一个函数,该函数使用提交给用户可以输入的条目小部件的值。在这个特定的例子中,我只使用DataFrame,因为我使用pandas将数据导入project。存储的数据有不同的子数据,但在基因上是相关的(每一列都是一个特定组的参数),我可以用每个数据的“专有名称”来调用它们。对我来说工作很容易谢谢你!我对类没有太多的经验,我不知道如何使用它,但我运行您的代码,我想我可以根据我的目标调整它。谢谢@Gabriebr我已经添加了我的示例的非类版本,所以您也可以使用它。非常感谢。最近我发布了另一个主题。如果你能查一下,我会很感激的!