残プロ 第-14回 ~pythonでcsvをgui表示~
今回すること
- csvを読込,gui表示
- pyhtonに標準で入っているtkinterモジュールを利用
- 表の作成にはttk.treeviewを使用する
.py
tkinterの流れとしては,
- ガワ(ウィンドウやフレーム)をつくる
- 中身(ラベルやボタン)をつくる
- 配置
となります.もちろん配置した後から中身をつくることもできます.
ガワと中身は作っておいて配置せず,任意のタイミング(ボタン押下等)で表示するといったことができます.今回はやってませんが...
以下,サンプルプログラムになります.
import tkinter as tk
import tkinter.ttk as ttk
import pandas as pd
def selected(event):
for item in tree.selection():
print(item, tree.item(item))
def main():
# Load .csv
df = pd.read_csv("tasks.csv", encoding='shift-jis')
# create Window and Treeview
root = tk.Tk()
tree = ttk.Treeview(root, show='headings')
# set Treeview columns
tree['column'] = ("No",) + tuple(df)
# set header
tree.heading("No", text="No")
for c in df:
tree.heading(c, text=c)
# set cells on the row
for i, row in enumerate(df.itertuples()):
tree.insert("", "end", tags=i, values=row)
# set layout
tree.pack()
# bind action
tree.bind('<<TreeviewSelect>>', selected)
# set loop
root.mainloop()
if __name__ == '__main__':
main()
実行結果
各行にselected関数をbindメソッドによって紐づけています.内容はクリックされた行のitemを表示するものです.今回の例ではvaluesに要素の配列が格納されていることが分かりますね!
選択された行のvaluesを操作すればgui上で表示の変更が,tagsを利用すれば.csvの編集ができそうです.
terminal
I006 {'text': '', 'image': '', 'values': [5, 'ペットボトル,缶', '2021年06月22日', '8:00:00', 'SecondTuesday,FourthTuesday', 'nan'], 'open': 0, 'tags': [5]}
Author And Source
この問題について(残プロ 第-14回 ~pythonでcsvをgui表示~), 我々は、より多くの情報をここで見つけました https://qiita.com/R1nY1x1/items/26c056d2ef0a3848215c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .