鱼C论坛

 找回密码
 立即注册
查看: 1311|回复: 3

[已解决]tkinter的text显示没有insert属性

[复制链接]
发表于 2019-12-22 21:14:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
from tkinter import *
from tkinter import filedialog
from tkinter import messagebox
import csv
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import numpy as np
from sklearn.linear_model import Ridge

root = Tk()
root.title("数据分析")
root.minsize(800,500)

file_name_var = StringVar()
num1 = StringVar()
num2 = StringVar()


def openfile():
    file_name = filedialog.askopenfilename(filetypes=[("csvfile","*.csv")])
    file_name_var.set(file_name)

def linear():
    numx = int(num1.get())
    numy = float(num2.get())
    data = np.genfromtxt(file_name_var.get(),delimiter=",")
    x_data = data[1:,0:numx-1]
    y_data = data[1:,-1]
    lr = Ridge(alpha=numy).fit(x_data,y_data)
    coef = list(lr.coef_)
    intercept = lr.intercept_
    R = lr.score(x_data,y_data)
   
    with open(file_name_var.get()) as f:
        reader = csv.reader(f)
        header_row = next(reader)
        numz = numx-1
        z = ""
        while numz:
            numz -= 1
            z += str(coef[numz]) + "*" + header_row[numz] + " "
        model = header_row[-1] + "=" + z + "\n"
        result = model + "\n" + "R值:" + str(R) + "\n"
    t.insert("insert",result)

   
        

"""
def test():
    if not re.findall('[0-9]+',str(num1.get())) or not re.findall('[0-9]+',str(num2.get())):
        messagebox.showwarning("警告","只能输入数字")
"""


# 创建界面中其他按键
b0 = Button(root,text="选择文件",font="微软雅黑", width=15,command=openfile).grid(
    row=0,column=0,pady=5,padx=5)
e0 = Entry(root,textvariable=file_name_var,state=DISABLED,font="微软雅黑").grid(
    row=0,column=1,pady=5,columnspan=4,sticky=W+E)
l1 = Label(root,text="响应所在列:",font="微软雅黑", width=20).grid(row=1,column=0,
    pady=5)
e1 =Entry(root,textvariable=num1, font="微软雅黑").\
    grid(row=1,column=1,pady=5)
l2 = Label(root,text="Alpha值:",font="微软雅黑", width=20).grid(row=1,column=2,
    pady=5)
e2 =Entry(root,textvariable=num2, font="微软雅黑").\
    grid(row=1,column=3,padx=5,pady=5)
b1 = Button(root,text="执行建模",font="微软雅黑",width=20,height=1,command=linear).grid(
    row=1,column=4,padx=5)
t = Text(root,font="微软雅黑").grid(row=2,column=2,columnspan=3,padx=5,pady=5)


mainloop()




就是第44行,想在t中显示,运算的结果,调试显示'NoneType' object has no attribute 'insert'
最佳答案
2019-12-23 02:16:30
没在电脑旁,只能目测

t = Text(root,font="微软雅黑")
t.grid(row=2,column=2,columnspan=3,padx=5,pady=5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-12-22 21:24:50 | 显示全部楼层
grid没有返回值,你要用的是实例对象,然后调用方法,而不是想当然grid给你text控件
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-12-22 21:44:06 | 显示全部楼层
塔利班 发表于 2019-12-22 21:24
grid没有返回值,你要用的是实例对象,然后调用方法,而不是想当然grid给你text控件

该怎么改呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-12-23 02:16:30 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
没在电脑旁,只能目测

t = Text(root,font="微软雅黑")
t.grid(row=2,column=2,columnspan=3,padx=5,pady=5)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-8 05:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表