Python tkinter -- 18장 캔버스 제어의 아크(arc)

18.2.14 create_arc(*args, **kw)
*args는 (x1, y1, x2, y2) 또는 4개의 좌표 매개변수 x1, y1, x2, y2의 직사각형 튜플일 수 있습니다. 다른 매개변수는 tcl.Error를 생성합니다. *args는 실제로 사각형의 왼쪽 위 및 오른쪽 아래 좌표를 통과하고 정의된 사각형 내에서 호(ARC), 팬(PIESLICE) 또는 보우(CHORD)를 만듭니다. 새로 생성된 개체가 디스플레이 맨 앞에 표시됩니다. 성공적으로 생성되면 객체의 ID를 반환합니다.
(1) *args: 생성할 객체의 경계를 정의합니다(x1, y1, x2, y2)
(2) **kw: kw 옵션의 구체적인 의미:

옵션 의미
액티브 대시 마우스가 개체의 가장자리 위로 이동할 때 점선 윤곽선을 그립니다.
액티브필 개체 위로 마우스를 이동하면 채우기 색상이
액티브 아웃라인 개체 위로 마우스를 이동하면 그려지는 윤곽선의 색상이
액티브 아웃라인팁 마우스가 개체 위로 이동할 때 외곽선을 채울 비트맵을 지정합니다.
참고: 직선 테두리에서만 유효하며 호에서는 유효하지 않습니다.
액티브스티플 마우스가 객체 위에 있을 때 비트맵이 채워지도록 지정합니다.
참고: 호가 포함된 그래픽에는 유효하지 않습니다.
활성 폭 개체 위로 마우스를 이동할 때 테두리의 너비를 지정합니다.
대시 점선 윤곽선을 그립니다. 기본값은 솔리드 아웃라인입니다.
비활성화 대시 객체 상태가 DISABLE일 때 점선을 그립니다.
비활성화된 채우기 객체 상태가 DISABLE일 때 채우기 색상은
장애인개요 객체 상태가 DISABLE일 때 등고선을 그리는 색상
비활성화된개요팁 개체 상태가 비활성화인 경우 아웃라인을 채울 비트맵을 지정합니다.
참고: 직선 테두리에서만 유효하며 호에서는 유효하지 않습니다.
장애인 개체 상태가 비활성화인 경우 아웃라인을 채울 비트맵을 지정합니다.
참고: 호가 포함된 그래픽에는 사용할 수 없습니다.
장애인 너비 객체 상태가 DISABLE일 때 테두리의 너비를 지정합니다.
정도 스팬(시작 옵션으로 지정된 위치에서 끝 위치까지의 각도)을 지정합니다. 기본값은 90입니다.
채우다 채우기 색상을 지정합니다. 빈 문자열은 투명함을 의미합니다.
오프셋 채워진 비트맵의 위치 지정 방법을 지정합니다. 그래픽에 호 테두리가 있는 그래픽이 포함된 경우 이 매개변수는 유효하지 않습니다.
개요 외곽선의 색상을 지정합니다.
외곽선 오프셋 비트맵으로 외곽선을 그릴 때 비트맵의 위치를 ​​지정하는 방법을 지정합니다. 이 옵션의 값은 "x,y", "#x,y", N, NE, E, SE, S, SW, W, NW가 될 수 있습니다. , 센터
윤곽선 테두리를 그릴 비트맵을 지정합니다. 기본값은 검은색을 의미하는 빈 문자열입니다. 호 부분의 테두리는 비트맵을 사용하여 그릴 수 없습니다.
시작 시작 위치의 오프셋 각도를 지정합니다.
상태 NORMAL, DISABLED(사용할 수 없음, 이벤트에 응답하지 않음) 및 HIDDEN(숨김)일 수 있는 개체의 상태를 지정합니다. 기본값은 정상입니다.
점각 모양을 채우는 데 사용할 비트맵을 지정합니다. 기본값은 솔리드를 의미하는 빈 문자열입니다. 이 속성은 호가 있는 그래픽에 사용할 수 없습니다.
스타일 방법이 팬(PIESLICE), 활(CHORD) 또는 호(ARC)를 생성하는지 여부를 지정합니다. 기본값은 팬을 생성하는 것입니다.
태그 생성된 개체에 태그 추가
너비 테두리의 너비를 지정합니다.
18.2.14.1 액티브 대시
개체의 윤곽선 위로 마우스를 이동하면 점선이 그려집니다. 점선은 객체 외부나 내부에 그려지지 않습니다.
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,activedash=True,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
설명: activedash 속성이 다른 활성 관련 속성과 결합되면 마우스가 개체 내부에 있을 수 있으며 점선도 그려집니다.
18.2.14.2 activefill
마우스가 개체 안에 있을 때 색상을 채웁니다. 마우스가 개체 밖으로 이동하면 원래 모양으로 돌아갑니다. activefill이 activedash와 결합되면 마우스가 후자의 객체 내부에 있을 때 점선이 그려집니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,activedash=True,
              activefill='red',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.3 activeoutline
마우스가 개체의 가장자리에 있을 때 윤곽선의 색상입니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,
              activeoutline='yellow',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.4 activeoutlinestipple
마우스가 가장자리에 있을 때 윤곽선의 음영 비트맵입니다. 그러나 호가 아닌 직선 윤곽선에만 유효합니다.
내장 텍스처 비트맵 옵션은
'gray75', 'gray50', 'gray25' 및 'gray12' 입니다.
여기에 이미지 설명 삽입

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,
              activeoutlinestipple='gray25',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.5 activestipple
마우스가 개체 위에 있을 때 개체의 채우기 비트맵입니다. 호가 포함된 그래픽에는 유효하지 않으므로 부채꼴 이미지에는 이 매개변수가 유효하지 않습니다.
18.2.14.6 activewidth
마우스가 개체 위로 이동할 때 테두리의 너비를 지정합니다. 이 너비는 테두리의 너비가 아니라 외부 프레임의 너비입니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,activewidth=10,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
18.2.14.7 dash는
파선 테두리를 그립니다. 이 매개 변수를 설정하지 않으면 그래프를 만들 때 테두리가 실선이 됩니다. dash에 대한 인수는 정수, 부울 또는 튜플입니다. 대시에는 세 가지 패턴이 있습니다.
여기에 이미지 설명 삽입

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,dash=(1,2),width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,dash=(1,3,5,7),width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,dash=(1,3,5),width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
점선을 그리는 경우는 위의 세 가지 경우뿐입니다. 필요에 따라 튜플의 매개변수를 조정하기만 하면 됩니다.
18.2.14.8 disableddash는
avtivedash와 같은 방식으로 사용되지만 객체의 상태가 tk.DISABLED일 때 점선으로 된 외곽선이 그려집니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,disableddash=True,
              state=tk.DISABLED,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.9 disabledfill은
avtivefill과 같은 방식으로 사용되지만 객체의 상태가 tk.DISABLED일 때 지정된 색상으로 채워집니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,disabledfill='red',
              state=tk.DISABLED,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.10 disabledoutline은
avtiveoutline과 같은 방식으로 사용되나 객체의 상태가 tk.DISABLED일 때 지정된 색상으로 외곽선을 그립니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,disabledoutline='red',
              state=tk.DISABLED,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.11 disabledoutlinestipple은
avtiveoutlinestipple과 같은 방식으로 사용되지만 개체의 상태가 tk.DISABLED인 경우 지정된 채우기 패턴에 따라 윤곽선이 그려집니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,state=tk.DISABLED,
              disabledoutlinestipple='gray25',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.12 disabledstipple은
avtivestipple과 같은 방식으로 사용되지만 객체의 상태가 tk.DISABLED일 때 지정된 채우기 패턴에 따라 객체의 내부를 그립니다. 그러나 객체에 호 테두리가 있는 경우 이 매개변수는 유효하지 않습니다. 따라서 팬과 같은 그래픽에는 이 매개변수가 유효하지 않습니다.
18.2.14.13 disabledwidth
와 avtivewidth는 같은 방식으로 사용되지만 객체의 상태가 tk.DISABLED인 경우 지정된 테두리의 너비를 사용합니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,state=tk.DISABLED,
              disabledwidth=10,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.14 정도
개체가 그려지는 각도입니다. 기본값은 90도입니다. 220도와 같은 다른 각도를 선택할 수도 있습니다. 범위가 360이면 원이 그려지나요? 아쉽게도 원이 아니라 직선입니다. 360도와 0도는 같은 의미이고 여기서 개구부를 기준으로 한 각도는 0도이므로 직선이다. 360도보다 크면 그리기 전에 360 나머지 연산을 수행합니다. 예를 들어 범위=380은 범위=20과 동일한 효과가 있습니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,extent=220,width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.15 채우기는
채우기 색상을 지정합니다. 기본값은 상위 창의 배경색을 사용하는 것입니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,fill='red',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
그러면 fill, activefill 및 disabledfill 중 어느 것이 더 높은 우선순위를 가집니까? 대답은 채우기가 가장 낮은 우선 순위를 갖는다는 것입니다. activefill 또는 disabledfill이 설정된 경우 조건이 충족되면 activefill 또는 disabledfill로 설정된 색상이 먼저 사용됩니다.
18.2.14.16 outline
외곽선의 색상을 지정합니다. 채우기와 마찬가지로 activeoutline 또는 disabledoutline을 동시에 설정하면 윤곽선의 우선 순위가 가장 낮습니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,200,200,outline='red',width=5)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.17 outlineoffset은
외곽선이 스티플링 모드로 그려질 때 비트맵이 배치되는 방식을 지정합니다. 가능한 값은 "x,y", "#x,y", N, NE, E, SE, S, SW, W, NW, CENTER입니다. 이 매개변수는 outlinestipple과 함께 사용됩니다.
18.2.14.18 outlinestipple
테두리를 채우는 비트맵을 지정합니다. 호가 아닌 직선에만 유효합니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,60,250,250,outlinestipple='@x.xbm',
              outlineoffset='w',width=30)
b1.pack()
tk.Entry(root).pack()
root.mainloop()
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(20,30,250,250,outlinestipple='@x.xbm',
              outlineoffset='e',width=30,extent=180)
b1.pack()
tk.Entry(root).pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
참고: 1) 내장 그래픽 외에 비트맵 파일도 사용자 정의 파일을 사용할 수 있습니다. 메서드는 @+파일 이름입니다.
2) 위의 예에서는 각각 'w'와 'e'의 포지셔닝 방식을 사용하고 있으며 비트맵의 시작점이 다른 것을 알 수 있다. 왼쪽 맞춤(w) 및 오른쪽 맞춤(e)과 동일합니다.
18.2.14.19 start
패턴의 시작 각도를 지정합니다. 기본값은 정의된 사각형의 중심에서 시작하여 오른쪽에서 왼쪽으로 그리는 것입니다. start=45와 같이 시작 각도를 지정할 수도 있습니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,173,200,fill='red',start=45,width=5)
b1.pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
18.2.14.20 state는
패턴의 상태를 지정합니다. 세 가지 유형이 있습니다.
(1) 일반. 정상 상태, 가시적, 선택적, 바운드 함수를 호출할 수 있습니다
. (2) DISABLED. 금지 상태, 표시되지만 선택할 수 없음, 바인딩된 콜백 함수가 작동하지 않음
(3) HIDDEN. 숨겨진 상태. 보이지 않는.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
def hidden():
    b1.itemconfigure(arc1,state='hidden')
def show():
    b1.itemconfigure(arc1,state='normal')
b2=tk.Button(root,text='Hidden',command=hidden)
b2.pack()
b3=tk.Button(root,text='Show',command=show)
b3.pack()
b1=tk.Canvas(root)
arc1=b1.create_arc(10,10,173,200,fill='red',width=5)
b1.pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
설명: 위의 코드는 이미지 표시 및 숨기기를 실현합니다. 섹터를 숨기려면 '숨김' 버튼을 클릭하고 그래프를 표시하려면 '표시'를 클릭합니다.
18.2.14.21 stipple은
그래픽 내부에 채워질 비트맵을 지정합니다. 그러나 호와 같이 호가 포함된 패턴의 경우 점각 매개변수가 작동하지 않습니다.
18.2.14.22 style
메서드가 팬(PIESLICE), 활(CHORD) 또는 호(ARC)를 생성하는지 여부를 지정합니다. 기본값은 섹터입니다.

import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,173,200,style=tk.PIESLICE,
              start=45,width=5)
b1.pack()
root.mainloop()
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,173,200,style=tk.CHORD,
              start=45,width=5)
b1.pack()
root.mainloop()
import tkinter as tk
root=tk.Tk()
root.geometry('320x240')
b1=tk.Canvas(root)
b1.create_arc(10,10,173,200,style=tk.ARC,
              start=45,width=5)
b1.pack()
root.mainloop()

결과:
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
여기에 이미지 설명 삽입
18.2.14.23 태그는
별칭에 해당하는 이미지의 태그를 정의합니다. 레이블은 다른 방법으로도 추가할 수 있습니다.
18.2.14.24 width
테두리의 너비를 지정합니다. 이전 코드에서 도입되어 사용되었습니다.

추천

출처blog.csdn.net/weixin_42272768/article/details/100811921