質問編集履歴
4
コードのミス
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,6 +39,14 @@
|
|
39
39
|
self.f = Tk.Frame(self.top)
|
40
40
|
|
41
41
|
self.f.pack()
|
42
|
+
|
43
|
+
self.volume = Tk.IntVar()
|
44
|
+
|
45
|
+
self.volume.set(50)
|
46
|
+
|
47
|
+
self.volume_bar = Tk.Scale(self.f, orient='h',variable=self.volume)
|
48
|
+
|
49
|
+
self.volume_bar.pack()
|
42
50
|
|
43
51
|
|
44
52
|
|
@@ -88,6 +96,4 @@
|
|
88
96
|
|
89
97
|
|
90
98
|
|
91
|
-
class Frame(Tk.Frame):
|
92
|
-
|
93
99
|
```
|
3
コードのミス
test
CHANGED
File without changes
|
test
CHANGED
@@ -39,6 +39,10 @@
|
|
39
39
|
self.f = Tk.Frame(self.top)
|
40
40
|
|
41
41
|
self.f.pack()
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
class Frame(Tk.Frame):
|
42
46
|
|
43
47
|
def __init__(self, master=None):
|
44
48
|
|
2
質問の仕方を変えた
test
CHANGED
File without changes
|
test
CHANGED
@@ -13,3 +13,77 @@
|
|
13
13
|
つまりある動作(ここでいえば子ウィンドウが開いているかいないか)をイベントとして登録するというツールや発想があれば教えていただきたいです
|
14
14
|
|
15
15
|
よろしくお願いします
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
```python
|
20
|
+
|
21
|
+
import tkinter as Tk
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
class VolumeWindow:
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
def __init__(self, master):
|
30
|
+
|
31
|
+
self.master = master
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
def make_window(self, event=None):
|
36
|
+
|
37
|
+
self.top = Tk.Toplevel(self.master)
|
38
|
+
|
39
|
+
self.f = Tk.Frame(self.top)
|
40
|
+
|
41
|
+
self.f.pack()
|
42
|
+
|
43
|
+
def __init__(self, master=None):
|
44
|
+
|
45
|
+
Tk.Frame.__init__(self, master)
|
46
|
+
|
47
|
+
self.f = Tk.Frame(self)
|
48
|
+
|
49
|
+
self.f.pack()
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
self.volume = VolumeWindow(self.f)
|
54
|
+
|
55
|
+
self.f_button = Tk.Frame(self.f)
|
56
|
+
|
57
|
+
self.f_button.pack()
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
self.volume_button = Tk.Button(self.f_button, text='Volume', command=self.control_volume, state=Tk.NORMAL)
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
self.volume_button.pack(padx=5, pady=5, side=Tk.LEFT)
|
66
|
+
|
67
|
+
|
68
|
+
|
69
|
+
def control_volume(self):
|
70
|
+
|
71
|
+
self.volume.make_window()
|
72
|
+
|
73
|
+
self.volume_button.configure(state=Tk.DISABLED)
|
74
|
+
|
75
|
+
|
76
|
+
|
77
|
+
if __name__ == '__main__':
|
78
|
+
|
79
|
+
f = Frame()
|
80
|
+
|
81
|
+
f.pack()
|
82
|
+
|
83
|
+
f.mainloop()
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
class Frame(Tk.Frame):
|
88
|
+
|
89
|
+
```
|
1
作業依頼にはしたくなく、あえてコードを送らないような質問の仕方にした
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Tkinter で
|
1
|
+
Tkinter で動作をイベントとして登録する方法
|
test
CHANGED
@@ -4,26 +4,12 @@
|
|
4
4
|
|
5
5
|
音楽プレーヤーをtkinterを使って製作しているのですが
|
6
6
|
|
7
|
-
ボタン
|
7
|
+
ボタン押すと新しい子ウィンドウが作成され、子ウィンドウが出ている間はボタンをDISABLEして、ウィンドウが新たに作成されないようにしたいのですが、
|
8
8
|
|
9
|
-
|
9
|
+
"子ウィンドウを閉じるとまたボタンをNORMALにする"という部分をコードとして書く方法がよく分からず困っています
|
10
|
-
|
11
|
-
自分のコードに適用できず困っています
|
12
|
-
|
13
|
-
いい方法を知っている方いればよろしくお願いいたします
|
14
10
|
|
15
11
|
|
16
12
|
|
17
|
-
|
13
|
+
つまりある動作(ここでいえば子ウィンドウが開いているかいないか)をイベントとして登録するというツールや発想があれば教えていただきたいです
|
18
14
|
|
19
|
-
self.volume_button = Tk.Button(self.f_button, text='Volume', command=VolumeWindow(self.f))
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
```
|
24
|
-
|
25
|
-
ボタンを押すとVolumeWindowが出るのですが、このままだとVolumeWindowが押す度にできてしまうので
|
26
|
-
|
27
|
-
|
15
|
+
よろしくお願いします
|
28
|
-
|
29
|
-
あるいはVolumeWindowの数を1つだけに制限したいです
|