質問編集履歴
1
ソースコードの更新
title
CHANGED
File without changes
|
body
CHANGED
@@ -4,90 +4,97 @@
|
|
4
4
|
コード1がボタンをクリックするたびにプログレスバーが進行するのに対しコード2はプログラム中の任意の点でプログレスバーが進行する様にしています。
|
5
5
|
|
6
6
|
### 発生している問題・エラーメッセージ
|
7
|
-
二つのコードで違う箇所は
|
7
|
+
二つのコードで違う箇所は#進捗ボタン 以下の4行ほどですがコード1は実行した直後にプログレスバーが画面に出てくるのに対してコード2はforループが終わったタイミングかつプログレスバーが右端までいった状態で画面に出てきます。
|
8
8
|
コード1と同様にプログラムを実行した直後にプログレスバーを出現させ、かつforループが1進むごとにプログレスバーのメモリを増やすにはどのようにすればよろしいでしょうか?
|
9
9
|
|
10
10
|
### 該当のソースコード
|
11
|
+
コード1
|
11
12
|
|
12
|
-
|
13
|
+
```python
|
13
14
|
from tkinter import *
|
14
15
|
from tkinter import ttk
|
15
16
|
|
16
17
|
def button_click():
|
17
|
-
|
18
|
+
pbval.set(pbval.get() + 1)
|
18
19
|
|
19
20
|
|
20
21
|
if __name__ == '__main__':
|
21
|
-
|
22
|
+
root = Tk()
|
22
23
|
ttk.Style().theme_use('classic')
|
23
24
|
root.title('Progress')
|
24
25
|
root.columnconfigure(0, weight=1);
|
25
26
|
root.rowconfigure(0, weight=1);
|
26
27
|
|
27
|
-
|
28
|
+
# Frame
|
28
|
-
|
29
|
+
frame1 = ttk.Frame(root, padding=10)
|
29
30
|
frame1.grid(sticky=(N, W, S, E))
|
30
31
|
frame1.columnconfigure(0, weight=1);
|
31
32
|
frame1.rowconfigure(0, weight=1);
|
32
33
|
|
34
|
+
# プログレスバー (確定的)
|
35
|
+
|
33
|
-
|
36
|
+
pbval = IntVar(value=0)
|
34
37
|
pb = ttk.Progressbar(
|
35
|
-
|
38
|
+
frame1,
|
36
39
|
orient=HORIZONTAL,
|
37
40
|
variable=pbval,
|
38
41
|
maximum=10,
|
39
42
|
length=200,
|
40
43
|
mode='determinate')
|
44
|
+
pb.grid(row=0, column=0, sticky=(N, E, S, W))
|
41
45
|
|
42
|
-
> pb.grid(row=0, column=0, sticky=(N, E, S, W))
|
43
|
-
|
44
|
-
|
46
|
+
# 進捗ボタン
|
45
|
-
|
47
|
+
button1 = ttk.Button(
|
46
|
-
|
48
|
+
frame1, text='OK', width=5,
|
47
49
|
command=button_click)
|
50
|
+
button1.grid(row=0, column=1, padx=5, sticky=(E))
|
48
51
|
|
49
|
-
> button1.grid(row=0, column=1, padx=5, sticky=(E))
|
50
|
-
root.mainloop()
|
52
|
+
root.mainloop()
|
53
|
+
```
|
51
54
|
|
52
55
|
コード2
|
53
56
|
|
57
|
+
```python
|
54
58
|
from tkinter import *
|
55
59
|
from tkinter import ttk
|
56
60
|
import time
|
57
61
|
|
58
62
|
def button_click():
|
59
|
-
|
63
|
+
pbval.set(pbval.get() + 1)
|
60
64
|
|
61
65
|
|
62
66
|
if __name__ == '__main__':
|
63
|
-
|
67
|
+
root = Tk()
|
64
|
-
|
68
|
+
ttk.Style().theme_use('classic')
|
65
|
-
|
69
|
+
root.title('Progress')
|
66
|
-
|
70
|
+
root.columnconfigure(0, weight=1);
|
67
|
-
|
71
|
+
root.rowconfigure(0, weight=1);
|
68
72
|
|
73
|
+
# Frame
|
69
|
-
|
74
|
+
frame1 = ttk.Frame(root, padding=10)
|
70
|
-
|
75
|
+
frame1.grid(sticky=(N, W, S, E))
|
71
|
-
|
76
|
+
frame1.columnconfigure(0, weight=1);
|
72
|
-
|
77
|
+
frame1.rowconfigure(0, weight=1);
|
73
78
|
|
74
|
-
> pbval = IntVar(value=0)
|
75
|
-
> pb = ttk.Progressbar(
|
76
|
-
|
79
|
+
# プログレスバー (確定的)
|
77
|
-
>> orient=HORIZONTAL,
|
78
|
-
>> variable=pbval,
|
79
|
-
>> maximum=10,
|
80
|
-
>> length=200,
|
81
|
-
mode='determinate')
|
82
80
|
|
81
|
+
pbval = IntVar(value=0)
|
82
|
+
pb = ttk.Progressbar(
|
83
|
+
frame1,
|
84
|
+
orient=HORIZONTAL,
|
85
|
+
variable=pbval,
|
86
|
+
maximum=10,
|
87
|
+
length=200,
|
88
|
+
mode='determinate')
|
83
|
-
|
89
|
+
pb.grid(row=0, column=0, sticky=(N, E, S, W))
|
84
90
|
|
85
|
-
|
91
|
+
# 進捗ボタン
|
86
92
|
for i in range(10):
|
87
|
-
|
93
|
+
button_click()
|
88
94
|
time.sleep(1)
|
89
95
|
|
90
|
-
|
96
|
+
root.mainloop()
|
97
|
+
```
|
91
98
|
|
92
99
|
### 試したこと
|
93
100
|
|