python学習中の者です。
tkinterを使い、業務効率化プログラムを起動したいです。
イメージではPCのフォルダのようで、
第一階層に「日時・月次・年次」の3つのボタンを配置し、各ボタンをおすと、にち業務A/業務B/業務Cといった業務のボタンが配置されているページになります。
そのボタンをおすと、プログラムが実行される仕組みにしたいと考えています。
さて、現在以下のコードで第一階層まで表示できました。
import tkinter as tk
root_main=tk.Tk()
root_main.title("プログラム実行")
root_main.geometry("600x400")
btn_nichiji=tk.Button(root_main,text="日時",height=4,width=28)
btn_getsuji=tk.Button(root_main,text="月次",height=4,width=28)
btn_nenji=tk.Button(root_main,text="年次",height=4,width=28)
btn_nichiji.pack()
btn_getsuji.pack()
btn_nenji.pack()
tk.mainloop()
このあと、第二階層のページへ移りたいのですが、どのようなコードを書けばよいのでしょうか?
お知恵をお貸しください。
以下追記
以下のコードで試してみましたが添付画像のような左詰めになってしまいます。
おそらくpack()の部分がうまくいっていないと思うのですが、なぜなのでしょうか。
import tkinter as tk import subprocess as sb from functools import partial root=tk.Tk() root.title("プログラム実行") root.geometry("600x600") #関数作成 def runtask(path): sb.run(["python",path],shell=True) #ページ作成---------------------------------------------------------------------------------------------------- #メイン page_main=tk.Frame(root) page_getsuji=tk.Frame(root) page_nichiji=tk.Frame(root) page_nenji=tk.Frame(root) #月次 page_getsuji_yusho=tk.Frame(root) page_getsuji_kinsen=tk.Frame(root) page_getsuji_tanki=tk.Frame(root) page_getsuji_lending=tk.Frame(root) pages=[page_main,page_getsuji,page_nichiji,page_nenji,page_getsuji_yusho, page_getsuji_kinsen,page_getsuji_tanki,page_getsuji_lending] #ボタン設定---------------------------------------------------------------------------------------------------- Button = partial(tk.Button, height=4, width=28) #メインページ------------------------------------------------------------------------------------------------------------------------------------ Button(page_main,text="日次",command=page_nichiji.tkraise).pack() Button(page_main,text="月次",command=page_getsuji.tkraise).pack() Button(page_main,text="年次",command=page_nenji.tkraise).pack() #月次ページ-------------------------------------------------------------------------------------------------------------------------------------- Button(page_getsuji,text="有価証券",command=page_getsuji_yusho.tkraise).pack() Button(page_getsuji,text="金銭信託",command=page_getsuji_kinsen.tkraise).pack() Button(page_getsuji,text="短期性資産",command=page_getsuji_tanki.tkraise).pack() Button(page_getsuji,text="貸付",command=page_getsuji_lending.tkraise).pack() Button(page_getsuji,text="戻る",command=page_main.tkraise) tk.Button(page_getsuji, text="戻る").place(x=10, y=10) #有価証券 Button(page_getsuji_yusho,text="ワークブック作成", command=partial(runtask,r"C:\Users\sirar\Documents\My python\EXCEL\1.workbook\workbook_create.py")).pack() for frame in pages: frame.grid(row=0,column=0,sticky=tk.NSEW) page_main.tkraise() root.mainloop()
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/23 05:01
2020/10/23 05:16
2020/10/23 06:18
2020/10/23 06:51