TKinter : 스크롤 가능한 캔버스, 확장 가능한 위젯 및 팩

Chimi

프레임 내에 그리드로 배치 된 레이블을 사용하여 테이블을 만들고 있습니다. 이 프레임을 스크롤 가능한 캔버스에 포함하고 싶습니다. 세로 스크롤 기능을 유지하면서 가로 공간을 채우기 위해 레이블을 확장하고 싶습니다. 내가하려는 작업을 보려면 여기에 내 코드가 있습니다.

class ScrollableTable(Frame):
def __init__(self, parent, rows=4, columns=5):
    self.rows = rows
    self.columns = columns

    Frame.__init__(self, parent, borderwidth=0, background='green')
    self.canvas = Canvas(self, borderwidth=0)
    self.frame = Frame(self.canvas, borderwidth=0, background='black')  
    self.vsb = Scrollbar(parent, orient=VERTICAL, command=self.canvas.yview)    
    self.canvas.configure(yscrollcommand=self.vsb.set)            
    self.canvas.pack(side=LEFT, fill=X, expand=TRUE)      
    # This is where I fix the height I want this window to take up         
    self.canvas.configure(yscrollcommand=self.vsb.set, width=720, height=80)
    self.height = self.canvas.winfo_reqheight()
    self.width = self.canvas.winfo_reqwidth()        

    self._widgets = []        
    for row in range(rows):
        current_row = []
        for column in range(columns):
            label = Label(self.frame, text="N/A", 
                             borderwidth=0, width=5, anchor=W, justify=LEFT)
            label.grid(row=row, column=column, sticky='NESW', padx=0.5, pady=0.5)
            current_row.append(label)
        self._widgets.append(current_row)

    self.canvas.create_window((0,0), window=self.frame, anchor='w', tags=self.frame)
    self.frame.bind("<Configure>", self.OnFrameConfigure)
    self.canvas.bind("<Configure>", self.onResize)  
    #self.frame.pack(side=LEFT, fill=X, expand=True)  
    self.vsb.pack(side=RIGHT, fill=Y, expand=True)    

위의 코드에서 두 번째에서 마지막 줄까지 주석 처리됩니다. 주석 처리되면 공간을 채우기 위해 확장되지 않는 테이블이 표시되지만 스크롤바는 작동합니다. 그러나 해당 줄의 주석 처리를 제거하고 frame.pack 접근 방식을 사용하면 테이블이 가로 공간을 채우지 만 스크롤 기능이 손실됩니다. 스크롤 기능을 잃어 버리는 이유-포인터가있는 이유는 무엇입니까?

브라이언 오클리

프레임을 호출 할 필요가 없으므로pack 프레임 너비를 수동으로 관리해야합니다. 일반적으로 <Configure>캔버스 이벤트에 바인딩하여이를 수행합니다 . 바인딩 된 함수에서 캔버스의 너비를 가져온 다음 itemconfigure메서드를 사용 하여 창 개체의 너비를 설정합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

마우스 크기 조정 및 드래그 가능한 위젯

분류에서Dev

tkinter에서 한 위젯을 다른 위젯으로 스크롤

분류에서Dev

변경 가능한 Qt 캔버스를위한 가장 좋은 방법

분류에서Dev

위치 div, iframe 및 스크롤 가능한 div

분류에서Dev

스크롤 가능한 브라우저 창 내 캔버스 (위치 잡기)

분류에서Dev

캔버스 그리드에서 python tkinter 버튼 바인딩 및 캔버스에 스크롤바 추가

분류에서Dev

Tkinter : 캔버스의 스크롤 가능한 프레임 : 자동 크기 조정 바인딩 오류

분류에서Dev

크기 조정이 가능한 Qt 위젯이있는 스크롤 가능한 배경

분류에서Dev

스크롤 영역 안에 크기 조정이 가능한 위젯 배치

분류에서Dev

스크롤 뷰 내부의 확장 가능한 목록보기

분류에서Dev

iOS에서 확장 가능한 목록보기 스크롤

분류에서Dev

위젯을 추가 할 때 스크롤바 및 자동 크기 조정으로 캔버스가 스크롤되지 않는 이유는 무엇입니까?

분류에서Dev

확장 가능한보기 및 텍스트

분류에서Dev

스크롤시 확장 가능한 목록보기에서 '자식'복제 및 재배치

분류에서Dev

Tkinter Entry 또는 Text 위젯에 스크롤바 추가

분류에서Dev

스크롤 가능한 PagerTabStrip

분류에서Dev

스크롤 가능한 PagerTabStrip

분류에서Dev

스크롤 가능한 창

분류에서Dev

창에 맞는 tkinter의 스크롤 가능한 matplotlib의 플롯

분류에서Dev

Tkinter 스크롤링 캔버스 위젯 속도 문제

분류에서Dev

확장 가능한 이미지 위에 텍스트 배치

분류에서Dev

두 고정 위젯 사이에 스크롤 가능한 위젯을 만드는 방법

분류에서Dev

ViewPager에서 ScrollView 및 위젯을 사용한 중첩 스크롤

분류에서Dev

드래그 가능한 캔버스 위젯을 여러 개 사용하는 방법은 무엇입니까?

분류에서Dev

무한 스크롤 및 확대 / 축소 가능한보기 Android를 만드는 방법은 무엇입니까?

분류에서Dev

Angular Chat을위한 스크롤 가능한 Div 만들기

분류에서Dev

Tkinter : 초기화 중에 실제 캔버스 크기 가져 오기 ( "sticky"에 의한 자동 확장 포함)

분류에서Dev

kotlin xml을 사용하는 ImageView 및 스크롤 가능한 TextView

분류에서Dev

스크롤 가능한 표는 머리글 및 본문 정렬

Related 관련 기사

  1. 1

    마우스 크기 조정 및 드래그 가능한 위젯

  2. 2

    tkinter에서 한 위젯을 다른 위젯으로 스크롤

  3. 3

    변경 가능한 Qt 캔버스를위한 가장 좋은 방법

  4. 4

    위치 div, iframe 및 스크롤 가능한 div

  5. 5

    스크롤 가능한 브라우저 창 내 캔버스 (위치 잡기)

  6. 6

    캔버스 그리드에서 python tkinter 버튼 바인딩 및 캔버스에 스크롤바 추가

  7. 7

    Tkinter : 캔버스의 스크롤 가능한 프레임 : 자동 크기 조정 바인딩 오류

  8. 8

    크기 조정이 가능한 Qt 위젯이있는 스크롤 가능한 배경

  9. 9

    스크롤 영역 안에 크기 조정이 가능한 위젯 배치

  10. 10

    스크롤 뷰 내부의 확장 가능한 목록보기

  11. 11

    iOS에서 확장 가능한 목록보기 스크롤

  12. 12

    위젯을 추가 할 때 스크롤바 및 자동 크기 조정으로 캔버스가 스크롤되지 않는 이유는 무엇입니까?

  13. 13

    확장 가능한보기 및 텍스트

  14. 14

    스크롤시 확장 가능한 목록보기에서 '자식'복제 및 재배치

  15. 15

    Tkinter Entry 또는 Text 위젯에 스크롤바 추가

  16. 16

    스크롤 가능한 PagerTabStrip

  17. 17

    스크롤 가능한 PagerTabStrip

  18. 18

    스크롤 가능한 창

  19. 19

    창에 맞는 tkinter의 스크롤 가능한 matplotlib의 플롯

  20. 20

    Tkinter 스크롤링 캔버스 위젯 속도 문제

  21. 21

    확장 가능한 이미지 위에 텍스트 배치

  22. 22

    두 고정 위젯 사이에 스크롤 가능한 위젯을 만드는 방법

  23. 23

    ViewPager에서 ScrollView 및 위젯을 사용한 중첩 스크롤

  24. 24

    드래그 가능한 캔버스 위젯을 여러 개 사용하는 방법은 무엇입니까?

  25. 25

    무한 스크롤 및 확대 / 축소 가능한보기 Android를 만드는 방법은 무엇입니까?

  26. 26

    Angular Chat을위한 스크롤 가능한 Div 만들기

  27. 27

    Tkinter : 초기화 중에 실제 캔버스 크기 가져 오기 ( "sticky"에 의한 자동 확장 포함)

  28. 28

    kotlin xml을 사용하는 ImageView 및 스크롤 가능한 TextView

  29. 29

    스크롤 가능한 표는 머리글 및 본문 정렬

뜨겁다태그

보관