tkinter로 배경이 투과하는 Frame 만들기 【Python】
환경
Windows10
Python3.7
※본 기사에서는 Win 환경만 취급합니다. 다른 OS에서는 정상적으로 움직이지 않을 가능성이 높다.
샘플 코드
from tkinter import ttk
import tkinter
root=tkinter.Tk()
root.wm_attributes("-transparentcolor", "snow")
#root.attributes("-alpha",0.5)
ttk.Style().configure("TP.TFrame", background="snow")
f=ttk.Frame(master=root,style="TP.TFrame",width="400",height="300")
f.pack()
label=ttk.Label(master=root,text="薄くならないで…",foreground="red",background="snow")
label.place(x=150,y=150)
root.mainloop()
root.wm_attributes
의 transparentcolor
에 투과시키고 싶은 색을 지정한다. 이번은 snow
로 설정.
이로 인해 background
가 snow
f
와 label
의 배경이 투명해진다.
실행 결과
Frame과 Label의 배경이 투명하고 뒤의 배경 화면이 보입니다. 약간 Label에 snow가 보이지만 이것은 어쩔 수 없습니다 (기분 나쁘다)
-alpha 옵션
위 코드 root.wm_attributes("-transparentcolor", "snow")
root.attributes("-alpha",0.5)
와 같이 하면 확실히 -alpha의 값으로 투명도를 [0,1]로 변경할 수 있습니다.
그러나
이렇게 root에 있는 Label 등 오브젝트 전체에 투과율이 적용되므로 주의가 필요.
참고
【Python】【TkInter】투명한 Frame을 생성한다
↑Mac 환경하에서는 이 기사의 내용으로 재현할 수 있다고 합니다(수중에 환경이 없기 때문에 미확인).
리눅스에서도 재현할 수 없는지 조사는 했지만 결국 해결할 수 없어...
위의 샘플 코드를 그대로 ubuntu18.04.4 환경에서 실행하면,
Traceback (most recent call last):
File "hoge.py", line 5, in <module>
root.wm_attributes("-transparentcolor", "snow")
File "/usr/lib/python3.6/tkinter/__init__.py", line 1788, in wm_attributes
return self.tk.call(args)
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type
되었다.
Reference
이 문제에 관하여(tkinter로 배경이 투과하는 Frame 만들기 【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teahat/items/050b572aad0d1686370b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
from tkinter import ttk
import tkinter
root=tkinter.Tk()
root.wm_attributes("-transparentcolor", "snow")
#root.attributes("-alpha",0.5)
ttk.Style().configure("TP.TFrame", background="snow")
f=ttk.Frame(master=root,style="TP.TFrame",width="400",height="300")
f.pack()
label=ttk.Label(master=root,text="薄くならないで…",foreground="red",background="snow")
label.place(x=150,y=150)
root.mainloop()
root.wm_attributes
의 transparentcolor
에 투과시키고 싶은 색을 지정한다. 이번은 snow
로 설정.이로 인해
background
가 snow
f
와 label
의 배경이 투명해진다.실행 결과
Frame과 Label의 배경이 투명하고 뒤의 배경 화면이 보입니다. 약간 Label에 snow가 보이지만 이것은 어쩔 수 없습니다 (기분 나쁘다)
-alpha 옵션
위 코드 root.wm_attributes("-transparentcolor", "snow")
root.attributes("-alpha",0.5)
와 같이 하면 확실히 -alpha의 값으로 투명도를 [0,1]로 변경할 수 있습니다.
그러나
이렇게 root에 있는 Label 등 오브젝트 전체에 투과율이 적용되므로 주의가 필요.
참고
【Python】【TkInter】투명한 Frame을 생성한다
↑Mac 환경하에서는 이 기사의 내용으로 재현할 수 있다고 합니다(수중에 환경이 없기 때문에 미확인).
리눅스에서도 재현할 수 없는지 조사는 했지만 결국 해결할 수 없어...
위의 샘플 코드를 그대로 ubuntu18.04.4 환경에서 실행하면,
Traceback (most recent call last):
File "hoge.py", line 5, in <module>
root.wm_attributes("-transparentcolor", "snow")
File "/usr/lib/python3.6/tkinter/__init__.py", line 1788, in wm_attributes
return self.tk.call(args)
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type
되었다.
Reference
이 문제에 관하여(tkinter로 배경이 투과하는 Frame 만들기 【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teahat/items/050b572aad0d1686370b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
위 코드
root.wm_attributes("-transparentcolor", "snow")
root.attributes("-alpha",0.5)
와 같이 하면 확실히 -alpha의 값으로 투명도를 [0,1]로 변경할 수 있습니다.그러나
이렇게 root에 있는 Label 등 오브젝트 전체에 투과율이 적용되므로 주의가 필요.
참고
【Python】【TkInter】투명한 Frame을 생성한다
↑Mac 환경하에서는 이 기사의 내용으로 재현할 수 있다고 합니다(수중에 환경이 없기 때문에 미확인).
리눅스에서도 재현할 수 없는지 조사는 했지만 결국 해결할 수 없어...
위의 샘플 코드를 그대로 ubuntu18.04.4 환경에서 실행하면,
Traceback (most recent call last):
File "hoge.py", line 5, in <module>
root.wm_attributes("-transparentcolor", "snow")
File "/usr/lib/python3.6/tkinter/__init__.py", line 1788, in wm_attributes
return self.tk.call(args)
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type
되었다.
Reference
이 문제에 관하여(tkinter로 배경이 투과하는 Frame 만들기 【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/teahat/items/050b572aad0d1686370b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Traceback (most recent call last):
File "hoge.py", line 5, in <module>
root.wm_attributes("-transparentcolor", "snow")
File "/usr/lib/python3.6/tkinter/__init__.py", line 1788, in wm_attributes
return self.tk.call(args)
_tkinter.TclError: bad attribute "-transparentcolor": must be -alpha, -topmost, -zoomed, -fullscreen, or -type
Reference
이 문제에 관하여(tkinter로 배경이 투과하는 Frame 만들기 【Python】), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/teahat/items/050b572aad0d1686370b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)