質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

1522閲覧

[Python初心者] Tkinter File Input/Outputのファイス選択、出力先選択、Path習得とを行いたい。

退会済みユーザー

退会済みユーザー

総合スコア0

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/09/14 11:05

下記のようなClassのグループ化が行われており、各Classでエラーが発生しています。
FirstFrame: Input Settings
SecondFrame: Output Setthings

FirstFrame

1class FirstFrame: 2 def __init__(self,master): 3 FrameOne = tk.LabelFrame(master, text="Input Settings", fg="white", bg="#52514F", padx="5", pady="5") 4 FrameOne.grid(column=2, row=2, padx='20', pady='10', sticky='nsew') 5 6 self.Text_Input_Path = tk.Label(FrameOne, text="Input Path ", fg="white", bg="#52514F", font=('Helvetica', 10)) 7 self.Text_Input_Path.grid(column=0, row=0, sticky='w') 8 self.Field_Input_Path = tk.Entry(FrameOne, fg="black", highlightbackground="#52514F") 9 self.Field_Input_Path.grid(column=1, row=0, sticky='nsew') 10 self.Button_Input_Path = tk.Button(FrameOne, text="Open File", command=self.file_dialog_input_path, highlightbackground="#52514F", font=('Helvetica', 10)) 11 self.Button_Input_Path.grid(column=2, row=0, sticky='e') 12 13 def file_dialog_input_path(self): 14 self.file_dialog_input = tk.filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes=[('MOV file (*.mov)', '*mov'), ('AVI file (*.avi)', '*.avi'),('MP4 file (*.mp4)', '*.mp4')]) 15 self.Field_Input_Path.insert(tk.END, self.file_dialog_input) 16 print (self.file_dialog_input) 17 TextOutputText = tk.Text(FifthFrame, height=8, width=45, bg="grey", highlightbackground='grey') 18 TextOutputText.delete('1.0', tk.END) 19 TextOutputText.insert(tk.END, self.file_dialog_input + "\n") 20 os.system("" + ffprobe_path.name + " file:" + self.Field_Input_Path.get()) 21 TextOutputText.insert(tk.END, str(os.system("" + ffprobe_path.name + " file:" + self.Field_Input_Path.get())))

エラー:Attribute 'file_dialog_input' defined outside init

SecondFrame

1class SecondFrame: 2 def __init__(self,master): 3 FrameTwo = tk.LabelFrame(master, text="Output Settings", fg="white", bg="#52514F", padx="5", pady="5") 4 FrameTwo.grid(column=2, row=3, padx='20', pady='10', sticky='nsew') 5 6 Text_Output_Path = tk.Label(FrameTwo, text="Output Path", fg="white", bg="#52514F", font=('Helvetica', 10)) 7 Text_Output_Path.grid(column=0, row=0, sticky='w') 8 Text_Output_Name = tk.Label(FrameTwo, text="Output Filename", fg="white", bg="#52514F", font=('Helvetica', 10)) 9 Text_Output_Name.grid(column=0, row=1, sticky='w') 10 Field_Output_Path = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 11 Field_Output_Path.grid(column=1, row=0, sticky='nsew') 12 Field_Output_Name = tk.Entry(FrameTwo, fg="black", highlightbackground="#52514F") 13 Field_Output_Name.grid(column=1, row=1, sticky='nsew') 14 Button_Output_Path = tk.Button(FrameTwo, text="Select Path", command=self.file_dialog_output_path, highlightbackground="#52514F", pady='2', font=('Helvetica', 10)) 15 Button_Output_Path.grid(column=2, row=0, sticky='nsew') 16 Extension_Value = tk.StringVar() 17 Extension_Value.set(".MOV") # default value as MOV | デフォルトMOV 18 #self.Extension_Option = tk.OptionMenu(FrameTwo, Extension_Value) 19 #self.Extension_Option.grid(column=2, row=1, sticky='nsew') 20 #self.Extension_Option.config(bg='#52514F', font=('Helvetica', 10), pady='2') 21 22 def file_dialog_output_path(self): 23 self.file_dialog_output = tk.filedialog.askdirectory(initialdir = "/",title = "Select path") 24 self.Field_Output_Path.insert(tk.END, self.file_dialog_output) 25 print (self.file_dialog_output) 26 #TextOutputText = tk.Text(FifthFrame, height=8, width=45, bg="grey", highlightbackground='grey') 27 #TextOutputText.delete('1.0', tk.END) 28 #TextOutputText.insert(tk.END, self.file_dialog_output)

エラー:Instance of 'SecondFrame' has no 'Field_Output_Path' member
Attribute 'file_dialog_output' defined outside init

こちらのエラーが解消できません。
そして、Output pathのPrintが機能しておらず、ファイルパスが表示されません。
お力をいただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

class FirstFrame:

エラー:Attribute 'file_dialog_input' defined outside init

これはメッセージそのままで、インスタンス変数は __init__ 内で宣言されなければいけないので、

def __init__(self,master): self.file_dialog_input = None # この行追加

で修正できると思います

class SecondFrame:

エラー:Instance of 'SecondFrame' has no 'Field_Output_Path' member Attribute 'file_dialog_output' defined outside init

今度は、__init__ 内で定義はあるのですが、 self. が抜けているように見えます。
インスタンス変数としてつかう変数に self. を足してください。
self.Field_Output_Path = 〜〜〜 のような感じです

投稿2020/09/14 13:09

YakumoSaki

総合スコア2027

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/09/15 08:47

無事にエラーが出ずできました。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問