私はまず、ユーザが画像を取得するためのディレクトリの名前と、結果の.csvファイル(およびその他の情報)を保存する場所を記入する簡単なプロンプトウィンドウを作成します。 。Tkinterのクラス構造とレイアウトについてわからない
これを入力すると(この場合)、このプロンプトウィンドウを閉じて、メインウィンドウにすべての作業が表示されるようにします。
つまり、これはGUIのクラスを構造化する正しい方法ですか?また、次のような理由もあります。
frame = Frame(master, height=500,padx=20, pady=20)
この初期ウィンドウの書式/レイアウトは変更されませんか?
この初期ウィンドウを作成する方法をしっかりと把握すれば、自分自身で残りの部分を続けるための適切な基盤ができます。
#imports
from Tkinter import *
import glob
from PIL import Image, ImageTk
#end imports
class prompt_window:
def __init__(self, master):
frame = Frame(master, height=500,padx=20, pady=20)
#Build prompt window labels
self.source_label = Label(root, text="Source Directory")
self.destination_label = Label(root, text="Destination Directory")
self.region_sz_label = Label(root, text="Region Size")
self.save_file_name_label = Label(root, text="Save File Name")
#Build prompt window entry forms
self.source_entry = Entry(root)
self.destination_entry = Entry(root)
self.region_sz_entry = Entry(root)
self.save_file_name_entry = Entry(root)
#Build enter button
self.enter_button = Button(root, text="Enter")
#Align labels in prompt window grid
self.source_label.grid(row=0)
self.destination_label.grid(row=1)
self.region_sz_label.grid(row=2)
self.save_file_name_label.grid(row=3)
#Align entry forms in prompt window grid
self.source_entry.grid(row=0, column=1)
self.destination_entry.grid(row=1, column=1)
self.region_sz_entry.grid(row=2, column=1)
self.save_file_name_entry.grid(row=3, column=1)
#Add button
self.enter_button.grid(row=4,column=2)
#create root
root = Tk()
#create prompt window
prompt = prompt_window(root)
#run indefinitely
root.mainloop()
は '' frame'に()を '.grid、それはおそらく、代わりに' root'の他のウィジェットの最初の引数でなければなりません。 [PEP 8 - スタイルガイドfor Pythonコード](https://www.python.org/dev/peps/pep-0008/)に従って、クラスの名前を 'PromptWindow'に変更する必要があります。 – martineau
@martineauフレームで.grid()を呼び出す必要がある理由と、それが適切な構造の維持にどのように関係しているのか説明できますか? –
**コードがエラーなしで正常に動作し、パフォーマンスやコードに関する提案が必要な場合は、[CodeReview](https://codereview.stackexchange.com/)に質問を投稿できます。もちろん、投稿する前にツアーページを読んでください。 – Lafexlos