回答編集履歴

1

2021/06/16 00:16

投稿

退会済みユーザー
test CHANGED
@@ -1,4 +1,4 @@
1
- ようございます
1
+ こんにちは。
2
2
 
3
3
 
4
4
 
@@ -6,168 +6,22 @@
6
6
 
7
7
 
8
8
 
9
- こんな感じでかがしょうか?
9
+ Label Widgetを使ってscrollbarを実装するのは難し
10
10
 
11
11
 
12
12
 
13
- ``` python
13
+ 1.canvas Widgetを作成
14
14
 
15
- import tkinter as tk
15
+ 2.canvas Widget内へLabel Widgetを配置する。
16
16
 
17
17
 
18
18
 
19
-
20
-
21
- class Application(tk.Frame):
22
-
23
- def __init__(self, master=None):
24
-
25
- # Windowの初期設定を行う。
19
+ が良さそです
26
-
27
- super().__init__(master)
28
20
 
29
21
 
30
22
 
31
- # Windowの画面サイズを設定する。
32
-
33
- # geometryについて : https://kuroro.blog/python/rozH3S2CYE0a0nB3s2QL/
23
+ canvas Widget内へscrollbarを実装する方法はこちらの記事の「その他のWidgetを使った、scrollbar Widgetサンプル集」内でまとまっていますので、ご確認いただけますと幸いです。????‍♂️
34
-
35
- self.master.geometry("500x500")
36
24
 
37
25
 
38
26
 
39
- # Windowを親要素として、frame Widget(Frame)を作成する。
40
-
41
- # frameについて : https://kuroro.blog/python/P20XOidA5nh583fYRvxf/
42
-
43
- frame = tk.Frame(self.master)
44
-
45
-
46
-
47
- # Windowを親要素とした場合に、frame Widgetをどのように配置するのか?
48
-
49
- # packについて : https://kuroro.blog/python/UuvLfIBIEaw98BzBZ3FJ/
50
-
51
- frame.pack()
52
-
53
-
54
-
55
- # frame Widget(Frame)を親要素として、canvas Widgetを作成する。
56
-
57
- # background : 背景色の設定
58
-
59
- # 色について : https://kuroro.blog/python/YcZ6Yh4PswqUzaQXwnG2/
60
-
61
- # width : 幅を設定
62
-
63
- # height : 高さを設定
64
-
65
- # scrollregion(w, n, e, s) : w : West, n : North, e : East, s : Southの略。
66
-
67
- # 設定したwidth(幅)、height(高さ)以上にscrollできる領域を設けたい場合に、方位に合わせて値を設定する。
68
-
69
- # 今回は、垂直方向へscrollさせたいので、sのみに値を設定する。
70
-
71
- # Canvasについて : https://kuroro.blog/python/ANyM9WLpd0LSXRQAELOj/
72
-
73
- canvas = tk.Canvas(frame, background="white", width=400,
74
-
75
- height=300, scrollregion=(0, 0, 0, 500))
76
-
77
-
78
-
79
- # label Widgetを作成する。
80
-
81
- # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/
82
-
83
- aaa = tk.Label(text='aaa')
84
-
85
- # label Widgetを作成する。
86
-
87
- # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/
88
-
89
- bbb = tk.Label(text='bbb')
90
-
91
- # label Widgetを作成する。
92
-
93
- # Labelについて : https://kuroro.blog/python/Pj4Z7JBNRvcHZvtFqiKD/
94
-
95
- ccc = tk.Label(text='ccc')
96
-
97
-
98
-
99
- # canvasへWidgetを配置する。
100
-
101
- # 参考 : https://anzeljg.github.io/rin2/book2/2405/docs/tkinter/create_window.html
102
-
103
- # Canvasについて : https://kuroro.blog/python/ANyM9WLpd0LSXRQAELOj/
104
-
105
- canvas.create_window(20, 20, window=aaa)
106
-
107
- canvas.create_window(20, 40, window=bbb)
108
-
109
- canvas.create_window(20, 450, window=ccc)
110
-
111
-
112
-
113
- # frame Widget(Frame)を親要素として、scrollbar Widgetを作成する。
114
-
115
- # orient : 垂直方向へscrollbarを作成するように設定する。
116
-
117
- # command : scrollbarを動かした場合に、連動して表示する内容を設定する。今回は、canvas Widgetをy軸方向に動かした内容を表示する。
118
-
119
- # Scrollbarについ : https://kuroro.blog/python/vgx53M7D1d6C0R8ejp0V/
27
+ ・[Tkinterで使われるscrollbarとは?活用事例を交え徹底解説](https://kuroro.blog/python/vgx53M7D1d6C0R8ejp0V/)
120
-
121
- scrollbar = tk.Scrollbar(
122
-
123
- frame, orient=tk.VERTICAL, command=canvas.yview)
124
-
125
-
126
-
127
- # scrollbar Widgetの設定内容をcanvas Widgetと紐付ける。
128
-
129
- # yscrollcommand : canvas Widget内で上下移動した場合に、scrollbarが追従するように設定する。
130
-
131
- canvas["yscrollcommand"] = scrollbar.set
132
-
133
-
134
-
135
- # frame Widget(Frame)を親要素とした場合に、canvas Widgetをどのように配置するのか?
136
-
137
- # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/
138
-
139
- canvas.grid(row=0, column=0)
140
-
141
- # frame Widget(Frame)を親要素とした場合に、scrollbar Widgetをどのように配置するのか?
142
-
143
- # gridについて : https://kuroro.blog/python/JoaowDiUdLAOj3cSBxiX/
144
-
145
- scrollbar.grid(row=0, column=1, sticky=(tk.N, tk.S))
146
-
147
-
148
-
149
-
150
-
151
- # Tkinter初学者参考 : https://docs.python.org/ja/3/library/tkinter.html#a-simple-hello-world-program
152
-
153
- if __name__ == "__main__":
154
-
155
- root = tk.Tk()
156
-
157
-
158
-
159
- app = Application(master=root)
160
-
161
-
162
-
163
- # Windowをループさせて、継続的にWindow表示させる。
164
-
165
- # mainloopについて : https://kuroro.blog/python/DmJdUb50oAhmBteRa4fi/
166
-
167
- app.mainloop()
168
-
169
- ```
170
-
171
-
172
-
173
- ご確認のほど、よろしくお願いいたします。????‍♂️