2017-05-01 11 views
-3

私は学校への割り当てをしていて、コンソールからではなく、タートルウィンドウから直接ユーザー入力を収集する方法を知りたいと思います。カメのボタンの容量はありますか?そうでない場合は、特定のエリアのイベントをクリックすると、画面の一部がボタンとして機能しますか?タートルウィンドウでユーザー入力を取得するにはどうすればよいですか?

+0

[so]へようこそ!このサイトでは、自分でコードを書くことができます**。 ** [もっと研究をして](// meta.stackoverflow.com/questions/261592)**あなたが問題を抱えていると、あなたが試みたものを投稿することができます** (** stackoverflow.com/help/mcve)を提供しています。私は良い質問と[完璧な質問]を読むことをお勧めします(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。また、[ツアー]を取って** [this](// meta.stackoverflow.com/questions/347937/)**を必ず読んでください。 – Badacadabra

答えて

1

入力カメモジュールが提供する2つのグラフィック入力方法を使用して得ることができるユーザー:(プロンプトタイトル)

  • のTextInput
  • numinput(タイトル、プロンプト、デフォルト=なし、MINVAL =なし、 maxval = None)

これらは、コンソールスタイルの入力がトラップする必要のあるエラーを防ぐのに役立つように設計されています。これらはPython 3で導入され、Python 2のカメでは利用できません。しかし、turtleを実行しているときにPython 2から呼び出すことのできるtkinterに相当するものがあります。

グラフィックボタンが必要な場合は、問題になったときにボタンになるようにカメを投げることをおすすめします。あなたは、アクションを呼び出すために、ボタンをクリックすることができるように、カメ、ない画面上にonclick()ハンドラを追加し、適切にして、亀の大きさ、形状や色:

from turtle import Turtle, mainloop 

BUTTON_SIZE = 60 
CURSOR_SIZE = 20 
FONT_SIZE = 18 
FONT = ('Arial', FONT_SIZE, 'bold') 
STATES = (('red', 'OFF'), ('green', 'ON')) 
INITIAL_STATE = STATES[0] 

def toggle_power(x, y): 
    color, state = STATES[button.fillcolor() == 'red'] 

    button.fillcolor(color) 
    marker.undo() 
    marker.write(state, align='center', font=FONT) 

color, state = INITIAL_STATE 

button = Turtle('circle') 
button.shapesize(BUTTON_SIZE/CURSOR_SIZE, outline=2) 
button.color('black', color) 
button.penup() 
# button.goto(-200, 200) # move the button into position 

marker = Turtle(visible=False) 
marker.penup() 
marker.goto(button.xcor(), button.ycor() - BUTTON_SIZE/2 - FONT_SIZE - 2) 
marker.write(state, align='center', font=FONT) 

button.onclick(toggle_power) 

mainloop() 

上記のボタンロジックはで動作するはずですPython 3またはPython 2のいずれか。

関連する問題