⑩ 複数のウィジェットを配置【python tkinter sqlite3で家計簿を作る】
⑩ 複数のウィジェットを配置【python tkinter sqlite3で家計簿を作る】
表示画面設計図
前回までに作成したGUI
今までの機能を用いて、表示画面のGUIを作成した。
また、TreeviewのHeading部のフォントを変更する方法については別ページにまとめた。
ttk Treeview Headingのfontを変更する方法 - memopy
# -*- coding: utf-8 -*- import tkinter as tk import tkinter.ttk as ttk import sqlite3 # 空のデータベースを作成して接続する dbname = "database.db" c = sqlite3.connect(dbname) c.execute("PRAGMA foreign_keys = 1") # rootフレームの設定 root = tk.Tk() root.title("家計簿アプリ") root.geometry("400x500") # メニューの設定 frame = tk.Frame(root,bd=2,relief="ridge") frame.pack(fill="x") button1 = tk.Button(frame,text="入力") button1.pack(side="left") button2 = tk.Button(frame,text="表示") button2.pack(side="left") button3 = tk.Button(frame,text="終了") button3.pack(side="right") # 入力画面ラベルの設定 label1 = tk.Label(root,text="【表示画面】",font=("",16),height=2) label1.pack(fill="x") # 期間選択のラベルエントリーの設定 frame1 = tk.Frame(root,pady=15) frame1.pack() label2 = tk.Label(frame1,font=("",14),text="期間 ") label2.pack(side="left") entry1 = tk.Entry(frame1,font=("",14),justify="center",width=12) entry1.pack(side="left") label3 = tk.Label(frame1,font=("",14),text=" ~ ") label3.pack(side="left") entry2 = tk.Entry(frame1,font=("",14),justify="center",width=12) entry2.pack(side="left") # 表示ボタンの設定 button4 = tk.Button(root,text="表示", font=("",16), width=10,bg="gray", command=lambda:select_sql(entry1.get(),entry2.get())) button4.pack() # ツリービューの作成 tree = ttk.Treeview(root,padding=10) tree["columns"] = (1,2,3) tree["show"] = "headings" tree.column(1,width=100) tree.column(2,width=75) tree.column(3,width=100) tree.heading(1,text="日付") tree.heading(2,text="内訳") tree.heading(3,text="金額") # ツリービューのスタイル変更 style = ttk.Style() # TreeViewの全部に対して、フォントサイズの変更 style.configure("Treeview",font=("",12)) # TreeViewのHeading部分に対して、フォントサイズの変更と太字の設定 style.configure("Treeview.Heading",font=("",14,"bold")) # SELECT文の作成 sql = """ SELECT acc_date,item_name,amount FROM acc_data as a,item as i WHERE a.item_code = i.item_code ORDER BY acc_date """ # ツリービューに要素の追加 i=0 for r in c.execute(sql): # 金額(r[2])を通貨形式に変換 r = (r[0],r[1],"¥{:,d}".format(r[2])) tree.insert("","end",tags=i,values=r) if i & 1: tree.tag_configure(i,background="#CCFFFF") i+=1 # ツリービューの配置 tree.pack(fill="x",padx=20,pady=20) # メインループ root.mainloop()
表示画面のGUIが完成した!
次は、表示画面のGUIに処理を実装する。
質問や記事の誤りがありましたらコメントお願いします。
前の記事
⑨ 表(テーブル)の作成【python tkinter sqlite3で家計簿を作る】
次の記事
⑪ コールバック関数の定義【python tkinter sqlite3で家計簿を作る】