回答編集履歴

6

リサイズ対応の為の伸縮設定

2022/10/04 02:51

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -37,8 +37,9 @@
37
37
  label = tk.Label(frame, text="Note")
38
38
  label.grid(row=0, column=2)
39
39
  text = tk.Text(frame)
40
- text.grid(row=1, column=2, rowspan=ROWS-1, padx=10, pady=10)
40
+ text.grid(row=1, column=2, rowspan=ROWS-1, padx=10, pady=10, sticky=tk.NSEW)
41
41
 
42
+ frame.grid_rowconfigure(list(range(ROWS)), weight=1)
42
43
  frame.pack(fill=tk.BOTH, expand=tk.YES)
43
44
  root.mainloop()
44
45
  ```

5

リサイズ対応のための設定

2022/10/04 02:47

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -39,6 +39,6 @@
39
39
  text = tk.Text(frame)
40
40
  text.grid(row=1, column=2, rowspan=ROWS-1, padx=10, pady=10)
41
41
 
42
- frame.pack()
42
+ frame.pack(fill=tk.BOTH, expand=tk.YES)
43
43
  root.mainloop()
44
44
  ```

4

実行画面のスクリーンショットを追加

2022/10/03 11:40

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -5,11 +5,22 @@
5
5
  left_frame と right_frame に別れているので出来ません。
6
6
  right_frame 側は left_frame がどのような配分かは知る事が出来ない為。
7
7
 
8
+
9
+ 解決策:
10
+ 同一フレーム上にgridで配置する必要があります。
11
+ 左右のframeを廃止し、up_frame に
12
+ column=0 の row=0..6 に Label
13
+ column=1 に Entry
14
+ column=2 row=0 に note の Label
15
+ column=2 row=1 rowspan=6 に Text
16
+ という配置にして見て下さい。
17
+
8
18
  ----
9
19
 
10
- ```python
20
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-10-03/8bfe55b4-78b7-4194-bd92-489d4e45962a.png)
11
21
 
12
22
 
23
+ ```python
13
24
  import tkinter as tk
14
25
 
15
26
  root = tk.Tk()
@@ -30,14 +41,4 @@
30
41
 
31
42
  frame.pack()
32
43
  root.mainloop()
33
-
34
44
  ```
35
-
36
- 解決策:
37
- 同一フレーム上にgridで配置する必要があります。
38
- 左右のframeを廃止し、up_frame に
39
- column=0 の row=0..6 に Label
40
- column=1 に Entry
41
- column=2 row=0 に note の Label
42
- column=2 row=1 rowspan=6 に Text
43
- という配置にして見て下さい。

3

コード例を追加

2022/10/03 11:35

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -4,6 +4,34 @@
4
4
  これは現際のフレーム構成では (リサイズ不可能の固定サイズにする以外は)
5
5
  left_frame と right_frame に別れているので出来ません。
6
6
  right_frame 側は left_frame がどのような配分かは知る事が出来ない為。
7
+
8
+ ----
9
+
10
+ ```python
11
+
12
+
13
+ import tkinter as tk
14
+
15
+ root = tk.Tk()
16
+ frame = tk.Frame(root)
17
+
18
+ ROWS = 6
19
+ for num in range(ROWS):
20
+ label = tk.Label(frame, text=f"{num:02}")
21
+ entry = tk.Entry(frame)
22
+
23
+ label.grid(row=num, column=0, pady=10, padx=5)
24
+ entry.grid(row=num, column=1, pady=10, padx=5)
25
+
26
+ label = tk.Label(frame, text="Note")
27
+ label.grid(row=0, column=2)
28
+ text = tk.Text(frame)
29
+ text.grid(row=1, column=2, rowspan=ROWS-1, padx=10, pady=10)
30
+
31
+ frame.pack()
32
+ root.mainloop()
33
+
34
+ ```
7
35
 
8
36
  解決策:
9
37
  同一フレーム上にgridで配置する必要があります。

2

間違い訂正 columnspan -> rowspan

2022/10/03 11:12

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -11,5 +11,5 @@
11
11
  column=0 の row=0..6 に Label
12
12
  column=1 に Entry
13
13
  column=2 row=0 に note の Label
14
- column=2 row=1 columnspan=6 に Text
14
+ column=2 row=1 rowspan=6 に Text
15
15
  という配置にして見て下さい。

1

補足

2022/10/02 04:51

投稿

teamikl
teamikl

スコア8664

test CHANGED
@@ -1,7 +1,7 @@
1
1
  > left_frameでフレーム内を7等分しているのと同じ比率で、right_frameも7等分し、1:6でnote_labelとnote_area(テキストフィールド)を設置したいのですが、
2
2
 
3
3
 
4
- これは現際のフレーム構成では
4
+ これは現際のフレーム構成では (リサイズ不可能の固定サイズにする以外は)
5
5
  left_frame と right_frame に別れているので出来ません。
6
6
  right_frame 側は left_frame がどのような配分かは知る事が出来ない為。
7
7