tkinter로 만든 Label의 우단의 좌표【Python】
Frame,Label의 배치 방법 등 기초적인 부분은 【tkinter】Label을 사용해 본다 등을 참조해 주세요.
(본 기사는 tkinter로 Label을 이동 [Python]의 일부입니다. 검색하기 쉽도록 다른 기사로 나누어 보았습니다.)
문제
txt=Labeltext
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize))
label.place(x=xx,y=yy)
그렇다면 label
의 왼쪽 끝은 Mochimon xx입니다.
그럼, 그 Label의 표시 위에서의 우단의 좌표는?
대답label.winfo_reqwidth()+xx
해설(오마케)
나는 처음으로 len(txt)*fontsize
( fontsize
단위는 화소px)에 갈 수 있었다고 생각했다. 그러나, tkinter로 Label을 이동 [Python] 에서 소개한 오른쪽 끝에 오면 접히는 프로그램에서, 문자열에 따라서는 Label이 오른쪽 끝에 가기 전에 접혀 버렸다.
이것은, len(txt)
로 하고 있는 것에 기인한다. 이 구현의 경우,
iiiii
AAAAA
가 같은 길이 취급되어 버리기 때문이다.
거기서 등장하는 것이__winfo_reqwidth()
__이다.
htps : // 엣 f보 t. rg / t Kinne r Boo k / uded t. htm에 따르면,
Returns the “natural” width for this widget. The natural size is the minimal size needed to display the widget's contents, including padding, borders, etc. This size is calculated by the widget itself, based on the given options. The actual widget is then determined by the widget's geometry manager, based on this value, the size of the widget's master, and the options given to the geometry manager.
요컨대, 지정된 오브젝트(여기에서는 Label)를 Frame상에 표시하는데 최소한 필요한 사이즈를 돌려준다. 이것에 label
의 좌단의 좌표 xx를 더하면, 현재의 label
의 우단의 좌표를 취득할 수 있다.
잘 오른쪽 끝 판정을 할 수 있었다.
참고로 `winfo_reqheight()`로 높이를 얻을 수 있다. 즉,
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125
print(label.winfo_reqheight())
>>45
txt="Labeltext\nLabeltext"#二行に渡って表示する場合
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125#横幅は変わらない
print(label.winfo_reqheight())
>>86#2行になったので増えた。ただし、≠45*2である点に注意
Reference
이 문제에 관하여(tkinter로 만든 Label의 우단의 좌표【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teahat/items/21f98d397a85a0bb8101
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
txt=Labeltext
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize))
label.place(x=xx,y=yy)
label.winfo_reqwidth()+xx
해설(오마케)
나는 처음으로 len(txt)*fontsize
( fontsize
단위는 화소px)에 갈 수 있었다고 생각했다. 그러나, tkinter로 Label을 이동 [Python] 에서 소개한 오른쪽 끝에 오면 접히는 프로그램에서, 문자열에 따라서는 Label이 오른쪽 끝에 가기 전에 접혀 버렸다.
이것은, len(txt)
로 하고 있는 것에 기인한다. 이 구현의 경우,
iiiii
AAAAA
가 같은 길이 취급되어 버리기 때문이다.
거기서 등장하는 것이__winfo_reqwidth()
__이다.
htps : // 엣 f보 t. rg / t Kinne r Boo k / uded t. htm에 따르면,
Returns the “natural” width for this widget. The natural size is the minimal size needed to display the widget's contents, including padding, borders, etc. This size is calculated by the widget itself, based on the given options. The actual widget is then determined by the widget's geometry manager, based on this value, the size of the widget's master, and the options given to the geometry manager.
요컨대, 지정된 오브젝트(여기에서는 Label)를 Frame상에 표시하는데 최소한 필요한 사이즈를 돌려준다. 이것에 label
의 좌단의 좌표 xx를 더하면, 현재의 label
의 우단의 좌표를 취득할 수 있다.
잘 오른쪽 끝 판정을 할 수 있었다.
참고로 `winfo_reqheight()`로 높이를 얻을 수 있다. 즉,
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125
print(label.winfo_reqheight())
>>45
txt="Labeltext\nLabeltext"#二行に渡って表示する場合
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125#横幅は変わらない
print(label.winfo_reqheight())
>>86#2行になったので増えた。ただし、≠45*2である点に注意
Reference
이 문제에 관하여(tkinter로 만든 Label의 우단의 좌표【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teahat/items/21f98d397a85a0bb8101
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125
print(label.winfo_reqheight())
>>45
txt="Labeltext\nLabeltext"#二行に渡って表示する場合
label=ttk.Label(master=root,text=txt,font=("メイリオ",fontsize),foreground="red",background="green")
print(label.winfo_reqwidth())
>>125#横幅は変わらない
print(label.winfo_reqheight())
>>86#2行になったので増えた。ただし、≠45*2である点に注意
Reference
이 문제에 관하여(tkinter로 만든 Label의 우단의 좌표【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teahat/items/21f98d397a85a0bb8101텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)