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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

2回答

5186閲覧

以下のコードで_tkinter.TclError: bad screen distance "C7"というエラーが出る

kemomimi_sabal

総合スコア12

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/03/01 03:43

編集2019/03/01 03:45

以下のコードで
_tkinter.TclError: bad screen distance "C7"
というエラーが出ます。

調べても解決策が見つからなかったのでこちらで質問させていただきました。

環境はWindows10 64bit, Python3.6です

Python

1 for i in range(0, 7): 2 scene.create_rectangle(0, 0.0 + (240 * i), 0 + 120, 0.0 + (240 * i) + 30, fill="#ffffff") 3 scene.create_rectangle(0, 30.0 + (240 * i), 0 + 120, 30.0 + (240 * i) + 40, fill="#ffffff") 4 scene.create_rectangle(0, 70.0 + (240 * i), 0 + 120, 70.0 + (240 * i) + 40, fill="#ffffff") 5 scene.create_rectangle(0, 110.0 + (240 * i), 0 + 120, 110.0 + (240 * i) + 30, fill="#ffffff") 6 scene.create_rectangle(0, 140.0 + (240 * i), 0 + 120, 140.0 + (240 * i) + 30, fill="#ffffff") 7 scene.create_rectangle(0, 170.0 + (240 * i), 0 + 120, 170.0 + (240 * i) + 40, fill="#ffffff") 8 scene.create_rectangle(0, 210.0 + (240 * i), 0 + 120, 210.0 + (240 * i) + 30, fill="#ffffff") 9 10 scene.create_rectangle(0, 20.0 + (240 * i), 0 + 60, 20.0 + (240 * i) + 20, fill="#0a0a0a") 11 scene.create_rectangle(0, 60.0 + (240 * i), 0 + 60, 60.0 + (240 * i) + 20, fill="#0a0a0a") 12 scene.create_rectangle(0, 100.0 + (240 * i), 0 + 60, 100.0 + (240 * i) + 20, fill="#0a0a0a") 13 scene.create_rectangle(0, 160.0 + (240 * i), 0 + 60, 160.0 + (240 * i) + 20, fill="#0a0a0a") 14 scene.create_rectangle(0, 200.0 + (240 * i), 0 + 60, 200.0 + (240 * i) + 20, fill="#0a0a0a") 15 scene.create_text("C" + str(7 - i), 95, 215 + (240 * i))ボールドテキスト

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

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

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

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

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

guest

回答2

0

scene.create_textの第1引数はX座標、第2引数はY座標で、どちらも数値で与えます。

"C7"という文字列は数値ではないですから、
「bad screen distance "C7"」(直訳:不正なスクリーン上の距離 "C7")
という指摘(エラーメッセージ)が出されたのです。

「"C" + str(7 - i)」の部分を、数値が得られるようなコードに書き換えたら、エラーは起きなくなります。

投稿2019/03/01 04:11

coco_bauer

総合スコア6915

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

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

0

ベストアンサー

原因は引数の指定の仕方が間違っているからです。

誤:scene.create_text("C" + str(7 - i), 95, 215 + (240 * i))
正:scene.create_text(95, 215 + (240 * i), text="C" + str(7 - i))

調べても解決策が見つからなかった

そもそもなぜ引数を間違って指定してしまったかが問題ではないでしょうか?

例えば「tkinter canvas create_text」で調べてみてください。
日本語の解説ページっぽいものがいくつかヒットすると思います。そのうちの一つを見てみましょう。

http://www.not-enough.org/abe/manual/program-aa08/pythontk2.html

このページからcreate_textという文字列をサーチすると次のような記述にいきあたります。

スクリプト解説

c.create_text(50, 50, text = 'hello, world!')
(50, 50)の位置から、textオプションでテキスト'hello, world!'を表示します。

関数・メソッドを使う際には「引数の仕様」の把握が不可欠ですがあなたはどのような情報に基づいて

canvas.crate_text(表示すべき文字列, x座標, y座標)

と書いてしまったのでしょう、なぜそういうコードを書いたのか(何に基づいて書いたのか)を省みれば「ご自分のプログラミミングの進め方の問題」が見えてくるのではないでしょうか?

投稿2019/03/01 04:04

KSwordOfHaste

総合スコア18392

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

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

kemomimi_sabal

2019/03/01 11:23

解決しました!! ありがとうございました!引数のスペルミスでした。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問