반응형
from Tkinter import *
def data():
for i in range(50):
Label(frame,text=i).grid(row=i,column=0)
Label(frame,text="my text"+str(i)).grid(row=i,column=1)
Label(frame,text="..........").grid(row=i,column=2)
def myfunction(event):
canvas.configure(scrollregion=canvas.bbox("all"),width=200,height=200)
root=Tk()
sizex = 800
sizey = 600
posx = 100
posy = 100
root.wm_geometry("%dx%d+%d+%d" % (sizex, sizey, posx, posy))
myframe=Frame(root,relief=GROOVE,width=50,height=100,bd=1)
myframe.place(x=10,y=10)
canvas=Canvas(myframe)
frame=Frame(canvas)
myscrollbar=Scrollbar(myframe,orient="vertical",command=canvas.yview)
canvas.configure(yscrollcommand=myscrollbar.set)
myscrollbar.pack(side="right",fill="y")
canvas.pack(side="left")
canvas.create_window((0,0),window=frame,anchor='nw')
frame.bind("<Configure>",myfunction)
data()
root.mainloop()
저는 초보자이므로 답을 간단하게 유지하십시오.
해결 방법
내가 제대로하고 있는가?이 코드가 제공 한 결과물을 얻을 수있는 더 나은 / 스마트 한 방법이 있나요?
일반적으로 말해서, 네, 당신은 제대로하고 있습니다. Tkinter에는 캔버스 이외의 기본 스크롤 가능 컨테이너가 없습니다. 보시다시피 설정하기가 그렇게 어렵지 않습니다. 귀하의 예제에서 알 수 있듯이 코드를 작동하는 데 5 줄 또는 6 줄만 필요합니다.
왜 그리드 방식을 사용해야하나요? (장소 방식을 시도했지만 캔버스에 라벨이 표시되지 않나요?)
그리드를 사용해야하는 이유에 대해 질문합니다. 그리드를 사용할 필요가 없습니다. 장소, 그리드 및 팩을 모두 사용할 수 있습니다. 일부는 특정 유형의 문제에 더 자연스럽게 적합합니다. 이 경우 실제 그리드 (레이블의 행과 열)를 만드는 것처럼 보이므로 그리드는 당연한 선택입니다.
캔버스에 창을 만들 때 anchor = 'nw'를 사용하면 특별한 점은 무엇인가요?
앵커는 주어진 좌표에 창의 어느 부분이 위치하는지 알려줍니다. 기본적으로 창의 중심은 좌표에 배치됩니다. 위 코드의 경우 왼쪽 상단 ( "북서쪽") 모서리가 좌표에 있어야합니다.
참조 페이지 https://stackoverflow.com/questions/16188420
반응형
'파이썬' 카테고리의 다른 글
파이썬 매우 높은 품질로 파이썬으로 이미지 저장 (0) | 2021.01.20 |
---|---|
파이썬 django의 관리자에서 개체를 편집하는 링크를 비활성화 하시겠습니까 (표시 목록 만 해당)? (0) | 2021.01.20 |
파이썬 가져올 수 있도록 내 파이썬 모듈을 어디에 두어야합니까? (0) | 2021.01.19 |
파이썬 Django의 ImageField 이미지가 템플릿에로드되지 않습니다. (0) | 2021.01.19 |
파이썬 하위 프로세스 호출에서 종료 코드 및 stderr 가져 오기 (0) | 2021.01.19 |
댓글