Python 使用tkinter在画布上显示选定数据文件的所有数据样本的程序

Python 使用tkinter在画布上显示选定数据文件的所有数据样本的程序,python,pandas,tkinter,tkinter-canvas,tkinter-entry,Python,Pandas,Tkinter,Tkinter Canvas,Tkinter Entry,我的目标是创建一个带有3个单选按钮和画布的框架。用户可以从框架上显示的一组3个单选按钮中选择数据文件。选择数据文件后,程序将立即在画布上显示该数据文件中的所有数据样本,无需使用按钮。数据文件名为蓝色、红色和未知。为了实现这一目标,我已经做了很多 import tkinter as tk ################################# def print_val(): selected = var.get() if selected == 1:

我的目标是创建一个带有3个单选按钮和画布的框架。用户可以从框架上显示的一组3个单选按钮中选择数据文件。选择数据文件后,程序将立即在画布上显示该数据文件中的所有数据样本,无需使用按钮。数据文件名为蓝色、红色和未知。为了实现这一目标,我已经做了很多

import tkinter as tk
#################################
def print_val():    
    selected = var.get()  
    if selected == 1:
        data = pd.read_csv('blue.txt', sep=" ", header=None)
        canvas = tk.Canvas(window, bg = 'black')
        canvas.pack(side ='right',fill ='y')
        #canvas.create_text(50,50, text = data)
        print(data)   
    elif  selected == 2:  
        data = pd.read_csv('red.txt', sep=" ", header=None)
        canvas = tk.Canvas(window, bg = 'black')
        canvas.pack(side ='right',fill ='y')
        canvas.create_text(50,50, text = data)
        #print(data)
    else:
        data = pd.read_csv('unknown.txt ', sep=" ", header=None)
        canvas = tk.Canvas(window, bg = 'black')
        canvas.pack(side ='right',fill ='y')
        canvas.create_text(50,50, text = data)
        #print(data)

#################################

window = tk.Tk()
# width x height + x_offset + y_offset:
window.geometry("500x250+100+100")

frame=tk.Frame(window, bg = 'gray')
frame.pack(side = 'left', fill ='y')

#Add variable var and 3 radio buttons
var = tk.StringVar()

rb1 = tk.Radiobutton(frame, text="blue_2d.txt", variable=var, value='1')
rb1.grid(column = 0, row = 3)
#rb1.deselect()

rb2 = tk.Radiobutton(frame,text="red_2d.txt ", variable=var, value='2')
rb2.grid(column = 1, row = 3)
#rb2.deselect()

rb3 = tk.Radiobutton(frame,text="unknown_2d.txt ", variable=var, value='3')
rb3.grid(column = 2, row = 3)
#rb3.deselect()

print_val()

window.mainloop() 


我创建了一个画布和一个带有单选按钮的框架,但是选择的值不会打印在画布上。有人能帮我吗?

在用户还没看到UI之前,你就在调用
print\u val()
,更不用说用单选按钮进行选择了。