質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.40%
import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

175閲覧

Pythonでtkinterのbrindを使っていたらエラーが発生しました

enjoyonigiri

総合スコア2

import

自身のプラットフォーム・プログラム・データセットに対して、外部ソースを取り込むプロセスをimportと呼びます。

Tkinter

Tkinterは、GUIツールキットである“Tk”をPythonから利用できるようにした標準ライブラリである。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2024/07/14 11:09

実現したいこと

黒い丸い物がdキーを押したらx座標がプラスの方向に動くという物です。

発生している問題・分からないこと

Pythonでtkinterのbrindを使っていたのですがdキーを押した瞬間にエラーが発生しました。

エラーメッセージ

error

1Exception in Tkinter callback 2Traceback (most recent call last): 3 File "C:\Users\okay_\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1948, in __call__ 4 return self.func(*args) 5 ^^^^^^^^^^^^^^^^ 6 File "C:/Users/okay_/AppData/Local/Programs/Python/Python312/ジャンプさせる.py", line 15, in migi 7 cvs.create_oval(x-30, 60, x+30, 60, hill="black") 8 File "C:\Users\okay_\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2855, in create_oval 9 return self._create('oval', args, kw) 10 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 File "C:\Users\okay_\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 2833, in _create 12 return self.tk.getint(self.tk.call( 13 ^^^^^^^^^^^^^ 14_tkinter.TclError: unknown option "-hill"

該当のソースコード

import tkinter root = tkinter.Tk() root.title("簡単なジャンプ") cvs= tkinter.Canvas(width = 360, height = 480, bg = "white") x = 0 y = 0 xp = 10 def migi(e): global x, xp cvs.delete x = x+xp cvs.create_oval(x-30, 60, x+30, 60, hill="black") root.bind("<KeyPress-d>", migi) cvs.pack() root.mainloop()

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

特になしであると私は考えています。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2024/07/14 11:19

hill ではなく、fill でしょう。 cvs.create_oval(x-30, 60, x+30, 60, hill="black") => cvs.create_oval(x-30, 60, x+30, 60, fill="black")
guest

回答1

0

ベストアンサー

_tkinter.TclError: unknown option "-hill"

エラーメッセージはデバッグのための重要な手掛かりを与えてくれます。
おっくうがらずによく読みましょう。

ここには「"-hill"というオプジョンは知りません」と書いてあります。そういうオプションが無いという意味です。
"-hill"という形でオプションを使ってはいませんが、tkinterは内部でTkというtcl言語で作られたGUIシステムを利用していて、そのときにオプションを「-」をつけて渡しているのです。ソースコードの中で 「hill」 が使われているのはここですね。

python

1 cvs.create_oval(x-30, 60, x+30, 60, hill="black")

create_ovalメソッドの引数を再確認してみてください。

投稿2024/07/14 13:23

TakaiY

総合スコア13337

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

enjoyonigiri

2024/07/15 03:46

回答ありがとうございます。 試したところ問題が解決しました! ベストアンサーに選ばせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.40%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問