実現したいこと
pythonのtkinterを使用してwidgetを縦並びにしたい
前提
最終的なレイアウトとしては以下の通り表示したいです。
1、2を縦並びとしたい
1、ボタン、ボタン(横並び)
2、ラベル、テキストボックス、ラベル、テキストボックス(横並び)
ご教授宜しくお願いいたします。
発生している問題・エラーメッセージ
1、2が横並びとなってしまいます。
該当のソースコード
# ボタンのおまとめウィジェット self.button_container = tk.Frame(self) self.button_container.pack(side=tk.TOP, anchor=tk.N) # ボタンを横並びに配置 self.main_button_emergency.pack(side=tk.LEFT, padx=5) self.main_button_announcement.pack(side=tk.LEFT, padx=5) # ラベル、テキストのおまとめウィジェット self.widget_frame = tk.Frame(self) self.widget_frame.pack(side=tk.TOP, anchor=tk.W) # ラベル、テキストボックスを横並びに配置 self.main_label_inputter.pack(side=tk.LEFT, padx=5) self.main_inputterBox.pack(side=tk.LEFT, padx=5) self.main_label_division.pack(side=tk.LEFT, padx=5) self.main_divisionBox.pack(side=tk.LEFT, padx=5)
試したこと
□親要素を明示的に定義
self.main_button_announcement.pack(side=tk.LEFT, padx=5, in_=self.button_container)
→縦並びとならず内部のウィジェットが表示されなくなってしまった。
□button_containerとwidget_frameの親要素を作成する。
container = tk.Frame(self) container.pack() # ボタンのおまとめウィジェット button_container = tk.Frame(self) button_container.pack(side=tk.TOP, anchor=tk.N) # ボタンを横並びに配置 self.main_button_emergency.pack(side=tk.LEFT, padx=5, in_=button_container) self.main_button_announcement.pack(side=tk.LEFT, padx=5, in_=button_container) # ラベル、テキストのおまとめウィジェット widget_frame = tk.Frame(self) widget_frame.pack(side=tk.TOP, anchor=tk.W) # ラベル、テキストボックスを横並びに配置 self.main_label_inputter.pack(side=tk.LEFT, padx=5, in_=widget_frame) self.main_inputterBox.pack(side=tk.LEFT, padx=5, in_=widget_frame) self.main_label_division.pack(side=tk.LEFT, padx=5, in_=widget_frame) self.main_divisionBox.pack(side=tk.LEFT, padx=5, in_=widget_frame)
button_containerとwidget_frameは縦並びになったが、内部のウィジェットが表示されなくなってしまった。
補足情報(FW/ツールのバージョンなど)
windows11 VSCode python3.11

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。