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

回答編集履歴

2

参考追記

2018/11/25 06:51

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -17,6 +17,9 @@
17
17
 
18
18
  また、`tkinter`の`Canvas`を利用するコードも示します。
19
19
  `.getscreen()`で得たスクリーンにマウスイベントをバインド(`.onclick`)しています。
20
+ 参考:
21
+ [Integrate turtle module with tkinter canvas [closed]](https://stackoverflow.com/questions/44653500/integrate-turtle-module-with-tkinter-canvas)
22
+ [turtle.getscreen()](https://docs.python.jp/3/library/turtle.html#turtle.getscreen)
20
23
  ```Python
21
24
  import turtle
22
25
  import tkinter as tk

1

追記

2018/11/25 06:51

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -13,4 +13,33 @@
13
13
  t.setpos(x,y)
14
14
 
15
15
  scr.onclick(click)
16
+ ```
17
+
18
+ また、`tkinter`の`Canvas`を利用するコードも示します。
19
+ `.getscreen()`で得たスクリーンにマウスイベントをバインド(`.onclick`)しています。
20
+ ```Python
21
+ import turtle
22
+ import tkinter as tk
23
+
24
+ def click(x,y):
25
+ t.setpos(x,y)
26
+
27
+ window = tk.Tk()
28
+ window.title('サンプル')
29
+ #window.geometry('430x400')
30
+ canvas = tk.Canvas(master = window, width = 420, height = 297)
31
+ canvas.pack()
32
+
33
+ # ついでにボタンを配置
34
+ tk.Button(master = window, text = "Fwd", command = lambda:t.forward(10)).pack(side = tk.LEFT)
35
+ tk.Button(master = window, text = "Back", command = lambda:t.back(10)).pack(side = tk.LEFT)
36
+ tk.Button(master = window, text = "Left", command = lambda:t.left(30)).pack(side = tk.LEFT)
37
+ tk.Button(master = window, text = "Right", command = lambda:t.right(30)).pack(side = tk.LEFT)
38
+
39
+ # マウスイベントをバインド
40
+ t = turtle.RawTurtle(canvas)
41
+ scr = t.getscreen()
42
+ scr.onclick(click)
43
+
44
+ window.mainloop()
16
45
  ```