前提・実現したいこと
Tkinterを使用して動画を再生し、コマ送りできるアプリを作成しようとしています。
GUIのデザインの書き方でClassを使わない方法で書いたのですが、わかりづらくなってしまいわかりやすくしたいのですがどうすればいいのかわかりません。
・Clearボタンを右寄りにしたい
・Input PathのText欄とOutputのText欄の位置を揃えたい
発生している問題・エラーメッセージ
該当のソースコード
Python
1import os 2import sys 3import tkinter as tk 4from tkinter import filedialog 5 6#=-=-=-GUI-=-=-= 7#Create Instance 8win = tk.Tk() 9win.title("IVT Transcode app") 10 11win.geometry("800x600") #Turn on for locked Resolution 12win.configure(background='#52514F') # DARK MODE! | ダークモード! 13icon_photo = tk.PhotoImage(file = '/Volumes/UNSUNG HERO/PYTHON/IVTC_tool/film.png') # icon file | アイコンファイル 14win.iconphoto(False, icon_photo) # Sets the icon | アイコン 15AppTitle = tk.Label(win, text="TDBT GUI v0.1", fg="white", bg="#52514F", font=('Verdana', 20, 'bold')) 16 17#----Frames | 枠組---- 18FrameOne = tk.LabelFrame(win, text="Input Settings", fg="white", bg="#52514F", padx="20", pady="10") 19FrameTwo = tk.LabelFrame(win, text="Output Settings", fg="white", bg="#52514F", padx="20", pady="10") 20FrameThree = tk.LabelFrame(win, text="Preview", fg="white", bg="#52514F", pady="30", padx="10") 21 22#--Widgets | 特徴---- 23#Input Widgets | 入力 24Text_Input_Path = tk.Label(FrameOne, text="Input Path", fg="white", bg="#52514F", font=('Helvetica', 10)) 25Field_Input_Path = tk.Entry(FrameOne, fg="black", highlightbackground="#52514F") 26Button_Input_Path = tk.Button(FrameOne, text="Open File", highlightbackground="#52514F", font=('Helvetica', 10)) 27 28#Output Widgets | 出力 29Text_Output_Path = tk.Label(FrameTwo, text="Output Path", fg="white", bg="#52514F", font=('Helvetica', 10)) 30Text_Output_Name = tk.Label(FrameTwo, text="Output Filename", fg="white", bg="#52514F", font=('Helvetica', 10)) 31Field_Output_Path = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 32Field_Output_Name = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 33Button_Output_Path = tk.Button(FrameTwo, text="Select Path", highlightbackground="#52514F", pady='2', font=('Helvetica', 10)) 34Extension_Value = tk.StringVar() 35Extension_Value.set(".MOV") #' default value as MOV | デフォルトMOV 36 373Extension_Option = tk.OptionMenu(FrameTwo, Extension_Value)# 38"""Extension_Option.config(bg='#52514F', font=('Helvetica', 10), pady='2')""" 39 40#Preview Widgets | プレビュー 41Preview_Start = tk.Button(FrameThree, text="Start", fg="black", bg="#52514F", font=('Helvetica', 10)) 42 43#---- Button and Text | ボタンとテキスト----- 44ButtonOne = tk.Button(win,text="Previwe", highlightbackground="#52514F", padx=20, pady=10) 45ButtonTwo = tk.Button(win, text="Clear", highlightbackground="#52514F", padx=20, pady=10) 46Button_ffm_simple = tk.Button(win, text="Simple Transcode", highlightbackground="#52514F", padx=20, pady="10") 47TextOutputText = tk.Text(win, height=8, width=110, bg="grey", highlightbackground='grey') 48 49#----Grid | 設計---- 50AppTitle.grid(column=2, row=0, columnspan=5, pady="10") 51 52#Frames | 枠組 53FrameOne.grid(column=2, row=1, padx='10', pady='10', sticky='nsew') 54FrameTwo.grid(column=2, row=2, padx='10', pady='10', sticky='nsew') 55FrameThree.grid(column=3, columnspan=5, row=1, rowspan=6, padx='10', pady='10', sticky='nsew') 56 57#Input | 入力 58Text_Input_Path.grid(column=0, row=0, sticky='w') 59Field_Input_Path.grid(column=1, row=0, sticky='nsew') 60Button_Input_Path.grid(column=2, row=0, sticky='nsew') 61 62#Output | 出力 63Text_Output_Path.grid(column=0, row=0, sticky='w') 64Field_Output_Path.grid(column=1, row=0, sticky='nsew') 65Button_Output_Path.grid(column=2, row=0, sticky='nsew') 66Text_Output_Name.grid(column=0, row=1, sticky='w') 67Field_Output_Name.grid(column=1, row=1, sticky='nsew') 68#Extension_Option.grid(column=2, row=1, sticky='nsew') 69 70#Preview | プレビュー 71Preview_Start.grid(column=3, row=1, sticky='nsew') 72 73#Buttons Grid | 設計のボタン 74ButtonOne.grid(column=2, row=8, sticky='w', pady=1, padx=10) 75ButtonTwo.grid(column=3, row=20, sticky='w', pady=1, padx=10) 76Button_ffm_simple.grid(column=2, row=10, sticky='w', pady=10, padx=10) 77TextOutputText.grid(column=2, columnspan=5, row=11, rowspan=5, sticky='nsew', pady=10, padx=10) 78 79 80#Start the GUI | GUI開始 81win.mainloop() 82
試したこと
ファイルのInput/Output, Button, PreviewなどをHTML,CSSを描くときのようにグループ化してわかりやすくしたいです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー