memopy

pythonで作ってみました的なブログ

⑥ LabelとEntryの配置【python tkinter sqlite3で家計簿を作る】

⑥ LabelとEntryの配置【python tkinter sqlite3で家計簿を作る】

今回はLabelとEntryウィジェットの配置をする。

設計図
f:id:memopy:20170528101451p:plain
前回までに作成したGUI
f:id:memopy:20170528111550p:plain

ラベル Label

# ラベルの作成(rootに配置,テキストの指定,フォントの指定)
label1 = tk.Label(root,text="【入力画面】",font=16)
label1.pack(fill="x")

ラベルが配置された。
f:id:memopy:20170528134344p:plain

Labelのオプション(抜粋)
オプション名 入力型式 説明
anchor center(デフォルト),n,ne,e,se,s,sw,w,nw ラベル内における文字の配置場所
中心(center)からの方位角
background
bg
背景色
borderwidth
bd
integer ラベルの枠幅
font font_object 文字のフォント
foreground
fg
string 文字色
height integer ラベルの縦の長さ
justify center(デフォルト),left,right 複数行のテキストの文字寄せ
relief flat(デフォルト),sunken,raised,groove,ridge ラベル枠の形状
ラベル枠の形状を有効にするためには、必ずborderwidthの値を1以上に設定しなければならない
text string ラベルに表示させる文字
underline boolean 下線を引く場合はTrue,付けない場合はFalse(デフォルト)
width integer ボタンの横の長さ
wraplength integer ラベルを複数行に表示した場合における行間

エントリー Entry

# エントリーの作成(rootに配置,フォントの指定,文字の中央揃え,Entry横幅の指定)
entry1 = tk.Entry(root,font=("",12),justify="center",width=15)
entry1.pack()

1行の入力欄が作成された!
f:id:memopy:20170528221335p:plain

Entryのオプション(抜粋)
オプション名 入力型式 説明
background
bg
背景色
borderwidth
bd
integer エントリーの枠幅
font font_object 文字のフォント
foreground
fg
string 文字色
justify center,left(デフォルト),right テキストの文字寄せ
relief flat,sunken(デフォルト),raised,groove,ridge エントリー枠の形状
width integer エントリーの横の長さ


LabelとEnterを用いて入力画面を作ってみる。

# -*- coding: utf-8 -*-

import tkinter as tk

# rootフレームの設定
root = tk.Tk()
root.title("家計簿アプリ")
root.geometry("300x280")

# メニューの設定
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=10)
frame1.pack()
label2 = tk.Label(frame1,font=("",14),text="日付")
label2.pack(side="left")
entry1 = tk.Entry(frame1,font=("",14),justify="center",width=15)
entry1.pack(side="left")

# 内訳のラベルとエントリーの設定
frame2 = tk.Frame(root,pady=10)
frame2.pack()
label3 = tk.Label(frame2,font=("",14),text="内訳")
label3.pack(side="left")
entry2 = tk.Entry(frame2,font=("",14),justify="center",width=15)
entry2.pack(side="left")

# 金額のラベルとエントリーの設定
frame3 = tk.Frame(root,pady=10)
frame3.pack()
label4 = tk.Label(frame3,font=("",14),text="金額")
label4.pack(side="left")
entry3 = tk.Entry(frame3,font=("",14),justify="center",width=15)
entry3.pack(side="left")

# 登録ボタンの設定
button4 = tk.Button(root,text="登録",font=("",16),width=10,bg="gray")
button4.pack()

# メインループ
root.mainloop()

入力画面が完成した!!
f:id:memopy:20170529202941p:plain

今回はここまで!
次回は表示画面を作成する。

質問や記事の間違いがありましたらコメントお願いします。


前の記事
⑤ FrameとLabelFrameの違い【python tkinter sqlite3で家計簿を作る】
次の記事
⑦ GUIの実装 sqlite3への登録【python tkinter sqlite3で家計簿を作る】