前提・実現したいこと
tkinterを使用して、
ファイルオープン→辞書型に変換→テキストボックスにキーを入力→キーに対応する値をリストボックスに表示
という流れを行いたいと思っています。
この時のデータは数値になります。
発生している問題・エラーメッセージ
TypeError: unhashable type: 'DoubleVar' タイプエラーが表示されたので、StringVarやIntVarなどでも行いましたが、改善されませんでした。 データ自体は整数なので、IntVarで良いと考えていたのですが、エラーになります。
該当のソースコード
python
1import os 2import csv 3import pandas as pd 4import tkinter as tk 5from tkinter import filedialog 6 7root=tk.Tk() 8root.title("stastics") 9root.geometry("1000x800") 10 11frame=tk.Frame() 12frame.grid(row=0) 13text=tk.Entry(width=20) 14text.place(x=100,y=100) 15list_value=None 16var=tk.IntVar() 17var.set(text.get()) 18listbox=tk.Listbox(frame,height=30,listvariable=list_value,selectmode="single") 19listbox.grid(row=1,column=1) 20 21 22def selectfile(): 23 type = [("all file","*")] 24 file_path = filedialog.askopenfilename(filetypes = type, initialdir = os.getcwd ()) 25 26 with open(file_path, 'r',encoding="utf-8_sig") as f: 27 reader=csv.reader(f) 28 header=next(reader) 29 30 for row in csv.DictReader(f,header): 31 listbox.insert(tk.END,row[var]) 32 33Button=tk.Button(frame,text="selectfile",command=selectfile,width=20) 34Button.grid(row=3,column=1) 35 36root.mainloop()
補足情報(FW/ツールのバージョンなど)
M1 mac anacondaを使用しています。
ご教授よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/12/14 12:54