概要
Pythonのtkinterライブラリの
treeviewウィジットで表示させた表を
for文で上から下まで全ての行をループさせ、
指定の列の文字列を照合させたいと思っています。
表示されている表形式のツリーをループするには、
どのように記述したらよいのでしょうか?
実際に実現させたいこと(詳細)
sqlite3で作成したDBファイル内に
メンバーリストにあたるtable1と
アイテムリストにあたるtable2群があります。
メンバーの登録・削除は生ファイルそのものを人が開いて編集し、
アイテムリストは365日分自動生成されます。
プログラムにはその日の現状のメンバーリストを取得させ、
その日のアイテムリスト内から名前をkeyとして照合するものを
treeviewで併記させたいと思っています。
別日を指定すればアイテムを差し替えるといった具合です
(実際はツリーを全削除して表示し直します)。
sqlite3のcursorでtable1をセレクトしてメンバー名を取得・表示し、
次にtable2をセレクトして表示されているメンバー名と照合する
要素を持つレコードのアイテムを挿入(追加)させようと考えています。
私の考えた処理とは別に最適な方法があるならば、
そちらをご教示いただければと思います。
下記コードの説明
下記のサンプル・コードをコピペするだけで
データベース・ファイルを作成しなくても
回答者様の環境で動作するよう、
sqlite3絡みの箇所をカットし、
リストと辞書に置き換えてあります。
membersが上記詳細でのtable1にあたり、
stuffがtable2にあたります。
'Adam'のItem列に'Apple'を表示させることが目標です。
サンプル・コード
Python
1import tkinter as tk 2import tkinter.ttk as ttk 3 4members = ['Ape1', 'Ape2', 'Adam', 'Eve', 'Python'] 5stuff = {'Ape2':'Branch', 'Adam':'Apple', 'Ape1':'Leaf', 'Eve':'Flower', 'Ape3':'Twig'} 6 7root = tk.Tk() 8tree = ttk.Treeview(root) 9 10tree["columns"] = (1,2) 11tree["show"] = "headings" 12tree.column(1,width=100) 13tree.column(2,width=100) 14tree.heading(1,text="Name") 15tree.heading(2,text="Item") 16 17""" メンバーをtreeviewの表形式で表示 """ 18for i in members:#実際はDB内のtable1内を捜索 19 tree.insert("","end",values=(i)) 20 21""" 直上で表示した表のName列の文字列をkeyにして 22辞書stuff内で照合するアイテムをツリーに挿入(追加)したい """ 23########################################################## 24# 実際はここでアイテムがつまったDB内のtable2内をfor文で捜索: # 25# ツリーのName列を上から下まで捜索するネストのfor文 # 26########################################################## 27 28tree.pack() 29 30root.mainloop()
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。