質問: Gui_18_v01(master=root_frame) # print(app.date_in()) app.mainloop() ``` ### 試したこと Classの継承を使うと何とか実現することができましたが、別の不明な問題が発生しより分からなくなりました。
回答: おはようございます。 問題文読ませていただきました。 こんな感じでいかがでしょうか? ``` # main.py import tkinter from sub import Gui_18_v01 if __name__ == '__main__': root = tkinter.Tk() app = Gui_18_v01(master=root) # self.dateInfo.get()の値を取得する。 app.date_in() # Windowをループさせて、継続的にWindow表示させる。 # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/ app.mainloop() ``` ``` # sub.py import tkinter class Gui_18_v01(tkinter.LabelFrame): def date_in(self): # entry Widgetの値を取得する。 print(self.dateInfo.get()) def __init__(self, master=None): # Windowの初期設定を行う。 # bg : 背景色の設定 # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/ # width : 幅の設定 # height : 高さの設定 super().__init__(master, bg="aquamarine", width=700, height=400) # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ self.pack() # Windowを親要素として、labelframe Widget(Frame)を作成する。 # text : テキスト情報 # bg : 背景色の設定 # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/ # LabelFrameについて : https://kuroro.blog/python/ggEa100zNeLfl5nJg1iK/ dateFrame = tkinter.LabelFrame( master, text="DATE InPut", bg="lavender") # Windowを親要素として、labelframe Widget(Frame)をどのように配置するのか? # placeについて : https://kuroro.blog/python/JyaHUKyFyxCa0baFfXg0/ dateFrame.place(x=0, y=0, width=400, height=60) # labelframe Widget(Frame)を親要素として、label Widgetを作成する。 # text : テキスト情報 # padx : 文字列の外側(x軸方向)へ空白の幅を設定 # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/ label = tkinter.Label(dateFrame, text="●", padx=10) # labelframe Widget(Frame)を親要素として、label Widgetをどのように配置するのか? # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ label.pack(side=tkinter.LEFT) # テキストボックスへ初期値を設定する。 # StringVarについて : https://kuroro.blog/python/K53voPjJuKFfYrjmP8FP/ self.dateInfo = tkinter.StringVar() self.dateInfo.set("17-05-11") # labelframe Widget(Frame)を親要素として、entry Widgetを作成する。 # width : 幅の設定 # textvariable : テキストボックスの値を設定 # justify : 入力された文字列の配置を設定 # Entryについて : https://kuroro.blog/python/PUZp77YFxrXvMCjpZbUg/ entry = tkinter.Entry(dateFrame, width=25, textvariable=self.dateInfo, justify='center') # labelframe Widget(Frame)を親要素として、entry Widgetをどのように配置するのか? # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ entry.pack(side=tkinter.LEFT, padx=10) # labelframe Widget(Frame)を親要素として、button Widgetを作成する。 # text : テキスト情報 # command : ボタンをクリックした時に、実行する関数を設定。self.date_inとする。 # fg : 文字色を設定。 # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/ # Buttonについて : https://kuroro.blog/python/oFju6EngDtcYtIiMIDf1/ btn = tkinter.Button(dateFrame, text="OK", command=self.date_in, fg='blue') # labelframe Widget(Frame)を親要素として、button Widgetをどのように配置するのか? # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/ btn.pack(side=tkinter.LEFT, padx=10) ``` ご確認のほど、よろしくお願いいたします。🙇♂️