2017-12-10 4 views
0

위젯을 재조정 할 때 텍스트를 나머지 위젯과 함께 확장하고 싶습니다.python tkinter 위젯 스케일

다음은 클릭 앤 드래그로 위젯의 크기를 조절하는 코드입니다. 그게 잘 작동하지만, 텍스트가 비례하지 않습니다.

import tkinter as tk 

#Create & Configure root 
root = tk.Tk() 
Grid.rowconfigure(root, 0, weight=1) 
Grid.columnconfigure(root, 0, weight=1) 

#Create & Configure frame 
frame=tk.Frame(root) 
frame.grid(row=0, column=0, sticky=N+S+E+W) 

#Create a 5x10 (rows x columns) grid of labels inside the frame 
for row_index in range(5): 
    Grid.rowconfigure(frame, row_index, weight=1) 
    for col_index in range(10): 
     Grid.columnconfigure(frame, col_index, weight=1) 
     btn = tk.Label(frame, text="Row %s: Col %s" % (row_index, col_index), 
         background = "#F8FC10") #create a label inside frame 
     btn.grid(row=row_index, column=col_index, sticky=N+S+E+W) 

root.mainloop() 

나는 텍스트 위젯의 나머지 부분과 확장하고자합니다.
위젯은 크기가 좋지만 텍스트는 그렇지 않습니다.

클릭 앤 드래그로 크기 조정되는 위젯으로 텍스트 크기를 조절할 수 있습니까?

답변

0

예, 텍스트의 크기를 조정할 수는 있지만 약간의 작업이 필요합니다. 나는 매우 비슷한 것을해야했고, 내가 한 방식은 글꼴 크기를 통한 것이었다. 텍스트 위젯을 만들 때 기본적으로 텍스트 위젯은 기본 글꼴 인 'TkFixedFont'를 얻습니다. 이름 붙여진 글꼴은 본질적으로 'Courier 10'정도입니다. Text.config (font = ...)를 통해 텍스트 글꼴을 수동으로 설정할 수 있습니다. 트릭은 텍스트 위젯의 상대적 크기에 따라 글꼴 크기를 변경하는 것입니다. 따라서 텍스트 위젯의 크기를 원하는 글꼴의 크기로 변환 한 다음 텍스트 위젯의 글꼴을 계산 한 글꼴 크기를 기반으로 새 글꼴로 업데이트하는 일종의 비율 조정 함수를 사용할 수 있습니다. 정의한 이벤트 핸들러 '<Configure>' 안에서이 작업을 수행하십시오.이 이벤트 핸들러는 텍스트 위젯 (또는 전체 앱) 크기가 조정될 때 호출됩니다.

내 응용 프로그램에는 위와 같이 글꼴 크기를 변경하여 확대/축소 버튼이 있습니다. 매력처럼 작동합니다.

게시물을 다시 읽으면 일부 라벨의 텍스트를 변경하려고합니다. 새 이름이 지정된 글꼴을 만들고이를 모든 레이블의 글꼴로 지정하십시오. 그런 다음 '<Configure>' 핸들러에서 이름이 지정된 글꼴을 새 글꼴 크기로 업데이트하면 이름이 지정된 글꼴을 사용하는 모든 위젯으로 전파됩니다.

또한 부수적으로 레이블 및 다른 위젯에서 텍스트의 크기를 조정하면 위젯의 크기가 표시되는 텍스트의 크기로 조정됩니다.

관련 문제