Python3 tkinter 탭 구현 [sample]

16511 단어 Tkinter파이썬
파이썬 tkinter라는 편리한 것들이 있습니다.
그러나 제약이 있거나 사용법이 느껴지지 않는 사람
탭을 구현하고 일어났기 때문에 참고하십시오.
환경은 python3의 MacOS입니다.
※python2.7과 3에서 다릅니다.

실제 사용자 양식



입력 양식


표시 양식


소스 코드



sample-tkinter.py
# -*- coding: utf-8 -*-

import tkinter as tk
import tkinter.ttk as ttk

# 登録ボタンがクリックされた時にデータをDBに登録するコールバック関数
def create_sql():
    # 日付の読み取り
    acc_data = entry1.get()
    print(acc_data)
    # 内訳の読み取り
    item_code = entry2.get()
    # 金額の読み取り
    amount = entry3.get()

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

# ノートブック
nb = ttk.Notebook(width=200, height=200)

# タブの作成
tab1 = tk.Frame(nb)
tab2 = tk.Frame(nb)
tab3 = tk.Frame(nb)
nb.add(tab1, text='入力', padding=3)
nb.add(tab2, text='表示', padding=3)
nb.add(tab3, text='その他', padding=3)
nb.pack(expand=1, fill='both')

## タブ1

# 入力画面ラベルの設定
label1_1 = tk.Label(tab1,text="【入力画面】",font=("",16),height=2)
label1_1.pack(fill="x")

# 日付のラベルとエントリーの設定
frame1_1 = tk.Frame(tab1,pady=10)
frame1_1.pack()
label1_2 = tk.Label(frame1_1,font=("",14),text="日付")
label1_2.pack(side="left")
entry1_1 = tk.Entry(frame1_1,font=("",14),justify="center",width=15)
entry1_1.pack(side="left")

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

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

# 登録ボタンの設定
button1_4 = tk.Button(tab1,text="登録",font=("",14),width=5,bg="gray",command=create_sql)
button1_4.pack()

## タブ2
# 入力画面ラベルの設定
label2_1 = tk.Label(tab2,text="【表示画面】",font=("",16),height=2)
label2_1.pack(fill="x")

# フレーム2_1の作成
frame2_1 = tk.Frame(tab2, pady=10)
frame2_1.pack()

# リスト2_1の作成
listb2_1 = tk.Listbox(frame2_1, width=20, height=7)
listb2_1.pack()

# スクロール2_1の作成
scroll2_1 = tk.Scrollbar(frame2_1, orient = 'v', command = listb2_1.yview)

# スクロールの設定
listb2_1.configure(yscrollcommand = scroll2_1.set)

# gridで配置
listb2_1.grid(row = 1, column = 0, sticky = 'ns')
scroll2_1.grid(row = 1, column = 1, sticky = 'ns')

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

좋은 웹페이지 즐겨찾기