이번에 마주한 이슈는 '버튼 크기 수정'이다.
OnB의 프레임은 버튼 크기에 따라 동시에 조정되고있다.
그리고 버튼 정렬 또한 프레임에 맞춰 정렬된다.
그러다 보니 버튼 크기를 수정 시 프레임과 버튼 간격이 조정되는
신기한 현상이 발생하고 있다. (모든것을 Cursor에게 맡긴 대가)
사실 그것까지는 괜찮다. '버튼 간격 수정' 기능을 넣은 이유가 그 때문이다.
하지만, 원인이 추측되지 않는 현상이 발견되었다.
사용자는 '버튼 크기 수정' 시 버튼의 가로 크기나 세로 크기를 조정 할 수 있다.
적용가능한 범위값은 20~100 이다.
다른 값의 경우 버튼의 크기가 조절이 되지만, 요상하게 범위값이 40~55일 때는
버튼 사이 간격과 버튼 아래쪽의 공백값이 조절되는 현상이 있다.
이번 이슈 해결을 위해 버튼 크기를 결정하는 코드의 위치를 질문했다.
버튼 크기 수정시 버튼 크기에 영향을 끼치는 기능의 위치를 알려줘
그리고, 다음과 같은 코드블록을 발견 할 수 있었다.
def update_button_sizes(self):
for name, _, _, button in self.buttons:
button.config(
width=max(self.button_size[0]//10, 8), # 최소 8자 너비
height=max(self.button_size[1]//20, 2), # 최소 2줄 높이
wraplength=self.button_size[0]
)
위의 코드를 보자마자 생각한 것은 '도대체 왜 height 는 20을 나누는거지...?' 였다.
그리고 여태까지 버튼의 세로간격 또한 가로보다 늘 작았던 것을 기억해서
height=max(self.button_size[1]//20, 2) 의 '20' 이 원인인 것으로 추정되어
20 -> 10으로 값을 수정해 보니 아주 깔끔하게 문제가 해결되었다.
최근 시간이 날 때 마다 파이썬을 배우는 중 인데,
그 덕분인지 이번 이슈 해결을 쉽게 하였다.
ps. 다시 확인해보니 버튼의 세로값과 가로값이
동일함에도 크기가 다른 이슈가 생겼다.
원인을 파악해보니 저기에 적용되는 함수는
Tkinter 이며, width는 문자 단위, height는 줄 단위로 계산이 된다고 한다.
새로운 것을 알게 되었다.
계속...
One Button 프로그램 개발기 - 21
기존에 사용하던 OnB의 버튼 크기 조정 등 기능이 워낙 말썽이 많아Tkinter대신 PyQt5를 시도해 보려고 한다.(찍먹만 해보기) 그 둘의 차이에 대해 표 작성을 ChatGPT에게 요청하였다. 구분TkinterPyQt5사
livelikeflow.tistory.com
처음 이야기
'AI 프로그래밍 > OnB(One Button Executor)' 카테고리의 다른 글
One Button 프로그램 개발기 - 22 (0) | 2024.11.20 |
---|---|
One Button 프로그램 개발기 - 21 (2) | 2024.11.13 |
One Button 프로그램 개발기 - 19 (1) | 2024.11.11 |
One Button 프로그램 개발기 - 18 (2) | 2024.11.08 |
One Button 프로그램 개발기 - 17 (3) | 2024.11.07 |