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

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

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

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

Python 3.x

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

Tkinter

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

Q&A

解決済

1回答

2042閲覧

Canvas 文章の長さで座標がずれる

tomo1998

総合スコア34

canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

Python 3.x

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

Tkinter

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

0グッド

0クリップ

投稿2019/04/20 10:30

発生している問題

tkinterのcanvasでは
canvas.create_text(x座標,y座標,配置する物)という感じで文章をcanvas上に配置できるのですが、ただこの時指定するx,y座標値はおそらく物体の中心点に合わせていると思うんです。
そのためもっと長い文章あるいは短い文章を配置しようと思うとずれてしまいます。

一方、tkinterで文章などをplaceで配置するときは文章の左上の点を座標値に合わせて配置しているため文章が長かったり短かったりしてもずれたりしないんです
canvasの文章配置でtkinterの様に物体の左上の点を座標値に合わせて配置する方法ってありますか?

該当のソースコード

canvasの方の文章の長さを変えるとずれるけど、labelの方は変えてもずれない

import tkinter as tk class GUI(object): def __init__(self): self.root=tk.Tk() self.root.geometry("260x200") self.Canvas = tk.Canvas(self.root,bg="white", width=400, height=350) self.Canvas.pack() self.Sentence=self.Canvas.create_text(45, 140, text="何をしようかな") self.Sentence=tk.Label(text="何をしようかな") self.Sentence.place(x=45,y=140) self.root.mainloop() gui=GUI()

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

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

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

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

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

guest

回答1

0

ベストアンサー

anchor=tk.SWのように位置の基準を指定してください。他のものを指定することも可能です。ちなみにデフォルトはCENTERです。

http://www.shido.info/py/tkinter2.html

http://effbot.org/tkinterbook/canvas.htm#Tkinter.Canvas.create_text-method

投稿2019/04/20 11:10

hayataka2049

総合スコア30933

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

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

tomo1998

2019/04/20 11:25

なるほど!おかげさまで解決できました、ありがとうございますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問