連載3:pythonで利用者情報入力を作る
『tkinterでform作成』
tkinterでユーザフォームを作成します。
長いコードになります。
# -*- coding: utf-8 -*- import tkinter as tk import tkinter.ttk as ttk import sqlite3 import tkinter.messagebox as msg root = tk.Tk() root.resizable(0,0) root.title("基本情報入力") root.geometry("640x640") status = tk.Label(root, text="from : zono屋・・・ ",borderwidth=2,relief="ridge") status.pack(side=tk.BOTTOM, fill=tk.X) # 1th < scrollbar > frame1 = tk.LabelFrame(root,bd=1,relief="sunken",text=" name ",height=600,foreground="purple") frame1.pack(side="left",anchor="nw",fill="x",padx=8,pady=2) scrollbar = tk.Scrollbar(frame1,bd=5,relief="sunken") scrollbar.pack(side="right",fill="y") # 2th " menu " < 利用者ID > frame2 = tk.LabelFrame(root,bd=1,relief="sunken",text=" manu ",width=600,height=100,foreground="purple") frame2.pack(side="top",anchor="n",fill="x",ipady=5,padx=2) label1 = tk.Label(frame2,text="利用者 ID",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label1.grid(row=1,column=1,padx=2,pady=2) entry1 = tk.Entry(frame2,text="",width=15,bg="light grey") entry1.grid(row=1,column=2,padx=2,ipady=5) # 3th " start date of use " < 西暦年 > < 月 > < 日 > frame3 = tk.LabelFrame(root,bd=1,relief="sunken",text=" start date of use ",width=600,height=100,foreground="purple") frame3.pack(side="top",fill="x",pady=5,padx=2) label9 = tk.Label(frame3,text="確認表示欄",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label9.grid(row=2,column=1,padx=2,pady=5) entry18= tk.Entry(frame3,text="",width=10,bg="light grey") entry18.grid(row=2,column=2,padx=2,ipady=5) label18= tk.Label(frame3,text="年",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label18.grid(row=2,column=3,padx=2,pady=5) entry19= tk.Entry(frame3,text="",width=10,bg="light grey") entry19.grid(row=2,column=4,padx=2,ipady=5) label19= tk.Label(frame3,text="月",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label19.grid(row=2,column=5,padx=2,pady=5) entry20= tk.Entry(frame3,text="",width=10,bg="light grey") entry20.grid(row=2,column=6,padx=2,ipady=5) label20= tk.Label(frame3,text="日",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label20.grid(row=2,column=7,padx=2,pady=5) label10 = tk.Label(frame3,text="利用開始日",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label10.grid(row=1,column=1,ipadx=10,pady=5) val = tk.StringVar() box2 = ttk.Combobox(frame3, values = (" ","2015","2016","2017","2018","2019","2020","2021"), textvariable=val, state='readonly',width=7,height=2) box2.current(0) box2.grid(row=1,column=2,padx=2,ipady=5) label12= tk.Label(frame3,text="年",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label12.grid(row=1,column=3,padx=2,pady=5) val = tk.StringVar() box3 = ttk.Combobox(frame3, values = (" ","01","02","03","04","05","06","07","08","09","10","11","12"), textvariable=val, state='readonly',width=7,height=2) box3.current(0) box3.grid(row=1,column=4,padx=2,ipady=5) label14= tk.Label(frame3,text="月",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label14.grid(row=1,column=5,padx=2,pady=5) val = tk.StringVar() box4 = ttk.Combobox(frame3, values = (" ","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"), textvariable=val, state='readonly',width=7,height=2) box4.current(0) box4.grid(row=1,column=6,padx=2,ipady=5) label16= tk.Label(frame3,text="日",width=7,height=2,bd=1,relief="sunken",bg="ghost white") label16.grid(row=1,column=7,padx=2,pady=5) # 4th "name Confirm input" < 姓 > < 名 > < セ イ > < メ イ > frame4 = tk.LabelFrame(root,bd=1,relief="sunken",text=" name Confirm input ",width=600,height=200,foreground="purple") frame4.pack(side="top",fill="x",pady=5,padx=2) label3 = tk.Label(frame4,text=" 姓 (*)",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label3.grid(row=2,column=1,padx=2,pady=5) entry2 = tk.Entry(frame4,width=15,text="") entry2.grid(row=2,column=2,padx=2,ipady=5) label4 = tk.Label(frame4,text=" 名 (*)",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label4.grid(row=2,column=3,padx=2,pady=5) entry3 = tk.Entry(frame4,text="",width=15) entry3.grid(row=2,column=4,padx=2,ipady=5) label5 = tk.Label(frame4,text=" セイ (*)",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label5.grid(row=3,column=1,padx=2,pady=5) entry4 = tk.Entry(frame4,text="",width=15) entry4.grid(row=3,column=2,padx=2,ipady=5) label6 = tk.Label(frame4,text=" メイ (*)",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label6.grid(row=3,column=3,padx=2,pady=5) entry5 = tk.Entry(frame4,text="",width=15) entry5.grid(row=3,column=4,padx=2,ipady=5) # 5th " other " < 市町村名 > < 支給量 > < 工賃単価 > frame5 = tk.LabelFrame(root,bd=1,relief="sunken",text=" other ",width=600,height=100,foreground="purple") frame5.pack(side="top",fill="x",pady=5,padx=2) label17 = tk.Label(frame5,text=" 市町村名 ",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label17.grid(row=1,column=1,padx=2,pady=5) val = tk.StringVar() box1 = ttk.Combobox(frame5,values = (" ","鹿児島市","熊本市,"八代市","さつま川内市","水俣市"), textvariable=val, state='readonly',width=12,height=2) box1.current(0) box1.grid(row=1,column=2,padx=5,ipady=5) label17 = tk.Label(frame5,text="確認表示欄 ",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label17.grid(row=1,column=3,padx=2,pady=5) entry14 = tk.Entry(frame5,text="",width=15,bg="light grey") entry14.grid(row=1,column=4,padx=2,ipady=5) label17 = tk.Label(frame5,text=" 支給量 ",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label17.grid(row=2,column=1,padx=2,pady=5) entry8 = tk.Entry(frame5,text="",width=15) entry8.grid(row=2,column=2,padx=2,ipady=5) label17 = tk.Label(frame5,text=" 工賃単価 ",width=10,height=2,bd=1,relief="sunken",bg="ghost white") label17.grid(row=3,column=1,padx=2,pady=5) entry9 = tk.Entry(frame5,text="",width=15) entry9.grid(row=3,column=2,padx=2,ipady=5) # 6th "<追加>・<更新>" frame7 = tk.LabelFrame(root,bd=1,relief="sunken",text=" edit ",width=600,height=100,foreground="purple") frame7.pack(side="top",fill="x",pady=5,padx=5) button2 = tk.Button(frame7,text="追 加",width=10,height=2,bg="lightgray") button2.pack(side="left",padx=2,pady=5) button3 = tk.Button(frame7,text="更 新",width=10,height=2,bg="lightgray") button3.pack(side="left",padx=2,pady=5) # 7th "<listbox>" mylist = tk.Listbox(frame1,yscrollcommand = scrollbar.set,height=600) mylist.insert(0) # リストボックス内の項目をクリックする # mylist.pack(side="left",fill="both") scrollbar.config(command = mylist.yview) # 8th " end " 【終 了】 frame8 = tk.LabelFrame(root,bd=1,relief="sunken",text=" end ",width=600,height=100,foreground="purple") frame8.pack(side="top",fill="x",pady=5,padx=5) label18 = tk.Label(frame8,text=" 項目 (*) は 必須 !",width=20,height=2,bd=1) label18.pack(side="left",padx=5,pady=5) button4 = tk.Button(frame8,text="終 了",width=10,height=2,bg="lightgray") button4.pack(side="right",padx=5,pady=5) root.mainloop()
出来上がりは