Frameで分けているコードをclassでわかりやすくしたいです。
Python
1 2import tkinter as tk 3 4 5#=-=-=-GUI-=-=-= 6#Create Instance 7win = tk.Tk() 8win.title("IVT Transcode app") 9 10win.geometry("700x700") #Turn on for locked Resolution 11win.configure(background='#52514F') # DARK MODE! | ダークモード! 12icon_photo = tk.PhotoImage(file = '/Volumes/UNSUNG HERO/PYTHON/IVTC_tool/film.png') # icon file | アイコンファイル 13win.iconphoto(False, icon_photo) # Sets the icon | アイコン 14#AppTitle = tk.Label(win, text="TDBT GUI v0.1", fg="white", bg="#52514F", font=('Verdana', 20, 'bold')) 15 16#----Frames | 枠組---- 17FrameOne = tk.LabelFrame(win, text="Input Settings", fg="white", bg="#52514F", padx="5", pady="5") #Input Settings Frame 18FrameTwo = tk.LabelFrame(win, text="Output Settings", fg="white", bg="#52514F", padx="5", pady="5") #Output Settings Frame 19FrameThree = tk.LabelFrame(win, text="Button", fg="white", bg="#52514F", pady="5", padx="5") #Buttoun Settings Frame 20FrameFour = tk.LabelFrame(win, text="Progress", fg="white", bg="#52514F", padx="5", pady="5") #Progress Settings Frame 21FrameFive = tk.LabelFrame(win, text="Preview", fg="white", bg="#52514F", padx="5", pady="5") #Preview Window Settings Frame 22 23 24#--Widgets | 特徴---- 25#Input Widgets | 入力 26Text_Input_Path = tk.Label(FrameOne, text="Input Path ", fg="white", bg="#52514F", font=('Helvetica', 10)) 27Field_Input_Path = tk.Entry(FrameOne, fg="black", highlightbackground="#52514F") 28Button_Input_Path = tk.Button(FrameOne, text="Open File", highlightbackground="#52514F", font=('Helvetica', 10)) 29 30#Output Widgets | 出力 31Text_Output_Path = tk.Label(FrameTwo, text="Output Path", fg="white", bg="#52514F", font=('Helvetica', 10)) 32Text_Output_Name = tk.Label(FrameTwo, text="Output Filename", fg="white", bg="#52514F", font=('Helvetica', 10)) 33Field_Output_Path = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 34Field_Output_Name = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 35Button_Output_Path = tk.Button(FrameTwo, text="Select Path", highlightbackground="#52514F", pady='2', font=('Helvetica', 10)) 36Extension_Value = tk.StringVar() 37Extension_Value.set(".MOV") #' default value as MOV | デフォルトMOV 38#Extension_Option = tk.OptionMenu(FrameTwo, Extension_Value) 39#Extension_Option.config(bg='#52514F', font=('Helvetica', 10), pady='2') 40 41 42#Cavas Area | キャンバスエリア 43canvas = tk.Canvas(FrameFive, width = 320, height = 240)#Canvasの作成 44canvas.create_rectangle(0, 0, 320, 240, fill = 'gray')#塗りつぶし 45canvas.place(x=0, y=0)#Canvasの配置 46 47 48#---- Button and Text | ボタンとテキスト----- 49## Button Frame ## 50ButtonOne = tk.Button(FrameThree,text="Previwe", highlightbackground="#52514F", padx=5, pady=5) #Preview 51ButtonTwo = tk.Button(FrameThree, text="Clear", highlightbackground="#52514F", padx=5, pady=5) #Clear 52Button_ffm_simple = tk.Button(FrameThree, text="Simple Transcode", highlightbackground="#52514F", padx=5, pady=5) #Simple Transcode 53 54#Preview Widgets | プレビュー 55Preview_Start = tk.Button(FrameFive, text="Start", fg="black", bg="#52514F", font=('Helvetica', 10)) 56Preview_ad1f = tk.Button(FrameFive, text=" < ", fg="black", bg="#52514F", font=('Helvetica', 10)) 57Preview_bc1f = tk.Button(FrameFive, text=" > ", fg="black", bg="#52514F", font=('Helvetica', 10)) 58MediaInfoOut = tk.Text(FrameFive, height=15, width=40, bg="white", highlightbackground='grey') 59 60## Progress Frame ## 61TextOutputText = tk.Text(FrameFour, height=3, width=80, bg="grey", highlightbackground='grey') 62ClearButton = tk.Button(FrameFour, text="Clear", highlightbackground="#52514F", padx=5, pady=5) 63 64 65#----Grid | 設計---- 66#AppTitle.grid(column=2, row=0, columnspan=4, pady="5",sticky='nsew') 67 68#Frames | 枠組 69FrameOne.grid(column=2, row=2, padx='20', pady='10', sticky='nsew') 70FrameTwo.grid(column=2, row=3, padx='20', pady='10', sticky='nsew') 71FrameThree.grid(column=3, row=2, rowspan=2, padx='20', pady='10', sticky='nsew') 72FrameFour.grid(column=2, columnspan=2, row=4, padx='20', pady='10', sticky='nsew') 73FrameFive.grid(column=2, columnspan=2, row=1, padx='20', pady='10', sticky='nsew') 74 75#Input | 入力 76Text_Input_Path.grid(column=0, row=0, sticky='w') 77Field_Input_Path.grid(column=1, row=0, sticky='nsew') 78Button_Input_Path.grid(column=2, row=0, sticky='e') 79 80#Output | 出力 81Text_Output_Path.grid(column=0, row=0, sticky='w') 82Field_Output_Path.grid(column=1, row=0, sticky='nsew') 83Button_Output_Path.grid(column=2, row=0, sticky='nsew') 84Text_Output_Name.grid(column=0, row=1, sticky='w') 85Field_Output_Name.grid(column=1, row=1, sticky='nsew') 86#Extension_Option.grid(column=2, row=1, sticky='nsew') 87 88#Preview Grid| プレビュー 89Preview_Start.grid(column=1, row=5, sticky='nsew', pady=5, padx=5) 90Preview_ad1f.grid(column=0, row=5, sticky='e', pady=5, padx=5) 91Preview_bc1f.grid(column=2, row=5, sticky='w', pady=5, padx=5) 92canvas.grid(column=0, columnspan=3, row=0, rowspan=4, pady=5, padx=5) 93MediaInfoOut.grid(column=3, row=0, rowspan=3, sticky='nw', pady=10, padx=10) 94 95#Buttons Grid | ボタンの設計 96ButtonOne.grid(column=2, row=0, sticky='nw', pady=5, padx=1) 97ButtonTwo.grid(column=2, row=1, sticky='nw', pady=5, padx=1) 98Button_ffm_simple.grid(column=2, row=2, sticky='nw', pady=5, padx=1) 99 100#Progress Grid | 進捗ウィンドウの設定 101TextOutputText.grid(column=1, columnspan=2, row=1, sticky='nsew', pady=5, padx=5) 102ClearButton.grid(column=2, row=2, sticky='e', pady=1, padx=1) 103 104 105#Start the GUI | GUI開始 106win.mainloop() 107
Applicationのメイン画面
Input_Settings
Output_Settings
Button(Controller)
Progress
Preview
上記の6つからなるフレームをClassで分けてわかりやすくしたいのですが、Classを複数持つ場合の書き方がわかりません。
どなたかご教授いただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/09/14 08:20
2020/09/14 09:05 編集
退会済みユーザー
2020/09/14 10:52