回答編集履歴

5

コード修正

2020/01/04 05:00

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  page.withdraw()
72
72
 
73
- root.after(1, diagnosis)
73
+ diagnosis()
74
74
 
75
75
  button = tk.Button(page, text="診断する", font=("UD デジタル 教科書体 N-B", 40), fg="orange", command=submit)
76
76
 

4

前の画面を非表示にするように変更

2020/01/04 05:00

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -18,6 +18,10 @@
18
18
 
19
19
  nick_name = tk.StringVar()
20
20
 
21
+ image_start = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\title.png")
22
+
23
+ image_nickname = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\nickname.png")
24
+
21
25
 
22
26
 
23
27
  def diagnosis():
@@ -28,9 +32,7 @@
28
32
 
29
33
  canvas = tk.Canvas(page, width=1260, height=700)
30
34
 
31
- picture = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\nickname.png")
32
-
33
- canvas.create_image(630, 345, image=picture)
35
+ canvas.create_image(630, 345, image=image_nickname)
34
36
 
35
37
  canvas.pack()
36
38
 
@@ -38,40 +40,46 @@
38
40
 
39
41
  entry.place(x=430, y=530)
40
42
 
41
- def command():
43
+ def submit():
42
-
43
- print(nick_name.get())
44
44
 
45
45
  page.destroy()
46
46
 
47
+ root.deiconify()
48
+
47
- button = tk.Button(page, text="ニックネーム登録", font=("UD デジタル 教科書体 N - B", 40), fg="orange", command=command)
49
+ button = tk.Button(page, text="ニックネーム登録", font=("UD デジタル 教科書体 N - B", 40), fg="orange", command=submit)
48
50
 
49
51
  button.place(x=360, y=600)
50
52
 
51
- page.mainloop()
53
+ page.protocol('WM_DELETE_WINDOW', submit)
52
54
 
53
55
 
54
56
 
55
57
  def start():
56
58
 
57
- root.title("犬猫系女子診断")
59
+ page = root
58
60
 
59
- canvas = tk.Canvas(root, width=1260, height=700)
61
+ page.title("犬猫系女子診断")
60
62
 
61
- picture = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\title.png")
62
-
63
- canvas.create_image(630, 345, image=picture)
63
+ canvas = tk.Canvas(page, width=1260, height=700)
64
64
 
65
65
  canvas.pack()
66
66
 
67
+ canvas.create_image(630, 345, image=image_start)
68
+
69
+ def submit():
70
+
71
+ page.withdraw()
72
+
73
+ root.after(1, diagnosis)
74
+
67
- button = tk.Button(root, text="診断する", font=("UD デジタル 教科書体 N-B", 40), fg="orange", command=diagnosis)
75
+ button = tk.Button(page, text="診断する", font=("UD デジタル 教科書体 N-B", 40), fg="orange", command=submit)
68
76
 
69
77
  button.place(x=550, y=590)
70
-
71
- root.mainloop()
72
78
 
73
79
 
74
80
 
75
81
  start()
76
82
 
83
+ root.mainloop()
84
+
77
85
  ```

3

理由追加

2020/01/04 04:57

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -1,3 +1,9 @@
1
+ start.mainloop() を実行した時点で、画面表示やイベント処理のループに入ってしまい、namePage の生成処理は実行されていない状態です。
2
+
3
+ そのため、ボタンを押したときに create_window関数に namePage を渡そうとしても、変数がないというエラーになってしまいます。
4
+
5
+
6
+
1
7
  期待する画面遷移と違うかもしれませんが、以下のようにすればひとまず動きます。
2
8
 
3
9
 

2

プログラム変更

2020/01/03 17:18

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -5,6 +5,12 @@
5
5
  ```python
6
6
 
7
7
  import tkinter as tk
8
+
9
+
10
+
11
+ root = tk.Tk()
12
+
13
+ nick_name = tk.StringVar()
8
14
 
9
15
 
10
16
 
@@ -16,11 +22,11 @@
16
22
 
17
23
  canvas = tk.Canvas(page, width=1260, height=700)
18
24
 
19
- canvas.pack()
20
-
21
25
  picture = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\nickname.png")
22
26
 
23
27
  canvas.create_image(630, 345, image=picture)
28
+
29
+ canvas.pack()
24
30
 
25
31
  entry = tk.Entry(page, textvariable=nick_name, width=15, font=("UD デジタル 教科書体 N - B", 40))
26
32
 
@@ -36,6 +42,8 @@
36
42
 
37
43
  button.place(x=360, y=600)
38
44
 
45
+ page.mainloop()
46
+
39
47
 
40
48
 
41
49
  def start():
@@ -44,24 +52,20 @@
44
52
 
45
53
  canvas = tk.Canvas(root, width=1260, height=700)
46
54
 
47
- canvas.pack()
48
-
49
55
  picture = tk.PhotoImage(file=r"C:\Users\Kazumi Kitazawa\Desktop\dog_or_cat\title.png")
50
56
 
51
57
  canvas.create_image(630, 345, image=picture)
58
+
59
+ canvas.pack()
52
60
 
53
61
  button = tk.Button(root, text="診断する", font=("UD デジタル 教科書体 N-B", 40), fg="orange", command=diagnosis)
54
62
 
55
63
  button.place(x=550, y=590)
56
64
 
65
+ root.mainloop()
57
66
 
58
67
 
59
- root = tk.Tk()
60
-
61
- nick_name = tk.StringVar()
62
68
 
63
69
  start()
64
70
 
65
- root.mainloop()
66
-
67
71
  ```

1

処理変更

2020/01/03 16:48

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -5,12 +5,6 @@
5
5
  ```python
6
6
 
7
7
  import tkinter as tk
8
-
9
-
10
-
11
- root = tk.Tk()
12
-
13
- nick_name = tk.StringVar()
14
8
 
15
9
 
16
10
 
@@ -60,12 +54,14 @@
60
54
 
61
55
  button.place(x=550, y=590)
62
56
 
63
- root.mainloop()
64
57
 
65
58
 
59
+ root = tk.Tk()
66
60
 
67
- if __name__ == '__main__':
61
+ nick_name = tk.StringVar()
68
62
 
69
- start()
63
+ start()
64
+
65
+ root.mainloop()
70
66
 
71
67
  ```