回答編集履歴
6
リサイズ対応の為の伸縮設定
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
リサイズ対応のための設定
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
実行画面のスクリーンショットを追加
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
|
-
|
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
コード例を追加
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
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
|
14
|
+
column=2 row=1 rowspan=6 に Text
|
15
15
|
という配置にして見て下さい。
|
1
補足
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
|
|