teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

4

コードのミス

2018/01/20 20:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -19,6 +19,10 @@
19
19
  self.top = Tk.Toplevel(self.master)
20
20
  self.f = Tk.Frame(self.top)
21
21
  self.f.pack()
22
+ self.volume = Tk.IntVar()
23
+ self.volume.set(50)
24
+ self.volume_bar = Tk.Scale(self.f, orient='h',variable=self.volume)
25
+ self.volume_bar.pack()
22
26
 
23
27
  class Frame(Tk.Frame):
24
28
  def __init__(self, master=None):
@@ -43,5 +47,4 @@
43
47
  f.pack()
44
48
  f.mainloop()
45
49
 
46
- class Frame(Tk.Frame):
47
50
  ```

3

コードのミス

2018/01/20 20:45

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -19,6 +19,8 @@
19
19
  self.top = Tk.Toplevel(self.master)
20
20
  self.f = Tk.Frame(self.top)
21
21
  self.f.pack()
22
+
23
+ class Frame(Tk.Frame):
22
24
  def __init__(self, master=None):
23
25
  Tk.Frame.__init__(self, master)
24
26
  self.f = Tk.Frame(self)

2

質問の仕方を変えた

2018/01/20 20:32

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -5,4 +5,41 @@
5
5
  "子ウィンドウを閉じるとまたボタンをNORMALにする"という部分をコードとして書く方法がよく分からず困っています
6
6
 
7
7
  つまりある動作(ここでいえば子ウィンドウが開いているかいないか)をイベントとして登録するというツールや発想があれば教えていただきたいです
8
- よろしくお願いします
8
+ よろしくお願いします
9
+
10
+ ```python
11
+ import tkinter as Tk
12
+
13
+ class VolumeWindow:
14
+
15
+ def __init__(self, master):
16
+ self.master = master
17
+
18
+ def make_window(self, event=None):
19
+ self.top = Tk.Toplevel(self.master)
20
+ self.f = Tk.Frame(self.top)
21
+ self.f.pack()
22
+ def __init__(self, master=None):
23
+ Tk.Frame.__init__(self, master)
24
+ self.f = Tk.Frame(self)
25
+ self.f.pack()
26
+
27
+ self.volume = VolumeWindow(self.f)
28
+ self.f_button = Tk.Frame(self.f)
29
+ self.f_button.pack()
30
+
31
+ self.volume_button = Tk.Button(self.f_button, text='Volume', command=self.control_volume, state=Tk.NORMAL)
32
+
33
+ self.volume_button.pack(padx=5, pady=5, side=Tk.LEFT)
34
+
35
+ def control_volume(self):
36
+ self.volume.make_window()
37
+ self.volume_button.configure(state=Tk.DISABLED)
38
+
39
+ if __name__ == '__main__':
40
+ f = Frame()
41
+ f.pack()
42
+ f.mainloop()
43
+
44
+ class Frame(Tk.Frame):
45
+ ```

1

作業依頼にはしたくなく、あえてコードを送らないような質問の仕方にした

2018/01/20 19:50

投稿

退会済みユーザー
title CHANGED
@@ -1,1 +1,1 @@
1
- Tkinter でボタン制御たい
1
+ Tkinter で動作イベントとて登録する方法
body CHANGED
@@ -1,15 +1,8 @@
1
1
  プログラミング初学者です
2
2
 
3
3
  音楽プレーヤーをtkinterを使って製作しているのですが
4
- ボタンを制御する方法が分からず困っています
5
- configure で state を DISABLED, NORMAL 変えやり方一般的なようですが
4
+ ボタン押す新しい子ウィンドウが作成され、子ウィンドウが出てい間はボタンをDISABLEして、ウィンドウ新たに作成されようにしたいのですが
6
- 自分のコードに適用できず困っています
7
- い方法知っいるいればろしお願いたします
5
+ "子ウィンドウを閉じるとまたボタンをNORMALにする"とう部分コードとし書く法がよく分からず困っています
8
6
 
9
- ```python
10
- self.volume_button = Tk.Button(self.f_button, text='Volume', command=VolumeWindow(self.f))
11
-
12
- ```
13
- ボタを押すとVolumeWindowのでが、このままだVolumeWindow押す度にできしまうの
7
+ つまりある動作(ここでいえば子ウィドウ開いていかいないか)をイベントとして登録いうツールや発想あれば教えいただきたい
14
- Windowが出てる間はstateをDISABLEDにるか
8
+ よろしくお願しま
15
- あるいはVolumeWindowの数を1つだけに制限したいです