반응형
개요
wxPython으로 StaticText를 만들어서 쓰다 보면, 글자가 흐리게 보이는 경우가 있다. 모니터를 다른 것으로 변경하면 더욱 도드라지는 경우도 있는데, 이는 wxPython에서 모니터의 DPI를 제대로 인식하지 못해서(?) 생기는 문제같다. 나도 애를 먹은 적이 있지만, 사실 실행시 코드 몇 줄만 추가하면 간단히 해결할 수 있는 문제이다.
import ctypes
ctypes 라이브러리는 C/C++ 언어로 작성된 함수를 파이썬에서 호출할 수 있도록 해주는 라이브러리이다. 해당 라이브러리를 사용하면 파이썬에서 쉽게 C/C++의 기능을 사용할 수 있다. (라고 바드가 알려주었다...ㄷㄷ) 아무튼 이 라이브러리를 사용하여 아래 코드를 추가해주면 손쉽게 글자 해상도를 높일 수 있다. 단 글자나 창의 크기가 변할수도있음에 주의하자!
import ctypes
try:
ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
pass
예제
ctypes 코드가 있는 부분을 주석처리 해보고 실행해보자. 글자 해상도에 변화가 느껴질 것이다.
반응형
import wx
from wx.adv import *
class Example(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self,parent,id,'DPI Awareness', size=(450,200))
# 사용자 코드
panel = wx.Panel(self, -1)
st = wx.StaticText(panel, -1, "모니터 해상도 조절 예제\n글자의 해상도 변화를 확인하세요!")
font = wx.Font(20, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL, wx.FONTWEIGHT_BOLD)
st.SetFont(font)
bsizer = wx.BoxSizer(wx.HORIZONTAL)
bsizer.Add(st, -1, wx.EXPAND|wx.ALL, 30)
panel.SetSizer(bsizer)
self.Center()
# 모니터 해상도 자동 조절!! 아래 부분을 주석처리 해보고 실행해보세요.
import ctypes
try:
ctypes.windll.shcore.SetProcessDpiAwareness(True)
except:
pass
if __name__=="__main__":
app = wx.App()
frame=Example(parent=None, id=-1)
frame.Show()
app.MainLoop()
도움되셨다면 하트(♥) 부탁드리고, 더 궁금한 사항은 댓글로 남겨주세요 :)
반응형
'wxPython' 카테고리의 다른 글
파이썬 GUI, 그리드, 테이블, 표 wx.Grid (0) | 2023.06.02 |
---|---|
파이썬GUI, 개발자 정보 입력, 파이썬 개발자 정보 AboutBox (0) | 2023.06.02 |
파이썬 GUI, 공지메시지 Notification Message (0) | 2023.05.26 |
파이썬 GUI, Matplotlib 그래프, 차트, 이미지 띄우기 (0) | 2023.05.03 |
파이썬 GUI, 로딩시 로고화면 넣기, 스플래시 스크린 Advanced Splash (0) | 2023.04.30 |