teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

追記

2019/05/09 00:16

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -1,3 +1,9 @@
1
+ 追記: 時間がたってからの追記ですみません。
2
+
3
+ [https://teratail.com/questions/188436#reply-279726](https://teratail.com/questions/188436#reply-279726)
4
+ にあるようにFrameの大きさをpackで親ウィジェットに合わせて拡張することが簡単にできることに気づきました。こちらの方法も参照ください!
5
+
6
+ ---
1
7
  Frameは複数の子供ウィジェットを配置できるコンテナウィジェットですが、子供をどのように配置するか適切に計算できるためには「全ての子供を同じ方法でレイアウトする必要がある」という点に注意が必要です。
2
8
 
3
9
  本件の場合、appの子供として2つのボタンがありますが、一方をplaceで、もう一方をpackで配置しようとしています。そういうことはできません。全てをpack/place/gridのいずれか一種類の配置方法に統一してください。

2

typo訂正

2019/05/09 00:16

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ここで「実験」してみました
8
8
 
9
- 自分は「rootの大きさをgeometoryで指定し、Frameをその大きさに合わせて自動拡張させる」ことが、Frameの配置で`pack(expand=True)`とすれば可能と考えたのですが、実際にはダメでした。
9
+ 自分は「rootの大きさをgeometryで指定し、Frameをその大きさに合わせて自動拡張させる」ことが、Frameの配置で`pack(expand=True)`とすれば可能と考えたのですが、実際にはダメでした。
10
10
  そこで考え方を変えて、「Frameインスタンスの大きさをwidth, heightで指定しrootは子供であるFrameインスタンスの大きさに合わせて広がってくれる」という方法を取ってみたところ期待通りになりました。
11
11
 
12
12
  ```Python
@@ -22,7 +22,7 @@
22
22
  self.bind('<Configure>', debug_conf) # for DEBUG
23
23
  self.pack()
24
24
  self.create_widgets()
25
- # master.geometory('1000x600') # rootの大きさは指定しない
25
+ # master.geometry('1000x600') # rootの大きさは指定しない
26
26
 
27
27
  def create_widgets(self):
28
28
  make_xline_button = tk.Button(self, text="make X-axis", command=self.say_hi)

1

冗長な文章表現をあらためる

2019/04/30 03:07

投稿

KSwordOfHaste
KSwordOfHaste

スコア18404

answer CHANGED
@@ -41,4 +41,4 @@
41
41
  app = MainApp(root)
42
42
  root.mainloop()
43
43
  ```
44
- debug_confは前述の「実験」をする際に「実際にウィジェット大きさがどう変化するか」をデバッグするために定義したものです。このデバッグテクニックは「注目するウィジェットの大きさと位置が実際にどうなっているか」を確認するのに重宝します。こういうちょっとしたデバッグをすると「あ・・・ボタンを配置しても、Frame自体の大きさが1x1にしかなってないから子供が表示されないんだな・・・」といったことにすぐに気づけるため悩む時間を短縮できます。
44
+ debug_confは前述の「実験」をする際のデバッグ関数です。このデバッグテクニックは「注目するウィジェットの大きさと位置が実際にどうなっているか」を確認するのに重宝します。こういうちょっとしたデバッグをすると「あ・・・ボタンを配置しても、Frame自体の大きさが1x1にしかなってないから子供が表示されないんだな・・・」といったことにすぐに気づけるため悩む時間を短縮できます。