web-dev-qa-db-ja.com

Python:キャンバス内にテキストを追加する方法は?

私は何度もキャンバスにテキストを追加しようとしましたが、ボタンをクリックするか、キャンバスの外側にしかテキストを追加できません。または、別のボックスに表示されます。以下のコードを使用して

def text():
    canvas.create_text(100,10,fill="darkblue",font="Times 20 italic bold",text="Click the bubbles that are multiples of two.")
    canvas.update

うまくいきませんでした。私の質問は、キャンバスにテキストを追加してゲームを開始するにはどうすればよいですか?

11
Pokemon_SL

まず、canvasという名前の変数がないため、最初のコードスニペットは機能しません。ただし、self.canvasという名前があります。そして、コードの最初のビットでself.canvasを使用して、それを作業プログラムに追加すると、テキストは問題なく表示されます。

また、コードの最初のビットでは、canvas.updateを実行します。末尾の括弧がないため、効果はまったくありません。修正すれば機能しますが、実際には役に立ちません。イベントループに入るとすぐにテキストが表示されます。

必要なのは、キャンバスを作成した直後に1行追加することだけです。

self.canvas = Canvas(root, width=800, height=650, bg = '#afeeee')
self.canvas.create_text(100,10,fill="darkblue",font="Times 20 italic bold",
                        text="Click the bubbles that are multiples of two.")
19
Bryan Oakley
  1. fg引数の代わりにfillを使用します
  2. fontの値が無効です。それについてもっと読んでください。
  3. canvas.updateの後の括弧について覚えておいてください
0
Muminek1234