Pyside6 오버레이 텍스트
1. 구상
이미지에서 OCR 기능으로 사용할 것은 easyOCR을 선택 했고 번역으로 사용할 것은 OpenAI 또는 Papago 둘 중 하나를 사용할 것으로 정했는데 이제는 번역한 OCR을 윈도우 화면에 오버레이로 어떻게 뿌려주지?? 라는 의문에 빠졌다.
잘못하는 분야라 예전처럼 좀 파보다가 멈출 듯 싶었지만 이제는 상황이 달라졌다.
바로 chatGPT 가 나왔기 때문이다!!
코드는 내가 짜는게 아니지 chatGPT한테 시키는거지 ㅋ
2. Pyside6를 이용해서 윈도우 오버레이 텍스트 만들어줘
이번에는 진짜 AI 특이점이 온 것 같다. 물론 어떤 질문을 넣느냐에 따라서 결과가 엄청나게 달라지지만 현재(2023.03) 까지 발표된 것들만 봐도 어마무시 하다.
그래서 필자도 시켰다.
"Pyside6를 이용해서 윈도우 오버레이 텍스트 만들어줘"
시대가 변해도 너무 변했다.
단박에 실행까지 된다.
import sys
from PySide6.QtCore import Qt, QTimer
from PySide6.QtGui import QPainter, QFont, QFontMetrics
from PySide6.QtWidgets import QApplication, QWidget
class OverlayWidget(QWidget):
def __init__(self, text):
super().__init__()
# 윈도우 속성 설정
self.setWindowFlags(Qt.FramelessWindowHint | Qt.WindowStaysOnBottomHint | Qt.Tool)
self.setAttribute(Qt.WA_TranslucentBackground) # 배경 투명하게 설정
# 오버레이할 문자열과 글꼴 설정
self.text = text
self.font = QFont('Arial', 32, QFont.Bold)
# 윈도우 크기 계산
fm = QFontMetrics(self.font)
self.width = fm.horizontalAdvance(self.text) + 40
self.height = fm.height() + 20
# 타이머 설정
self.timer = QTimer()
self.timer.timeout.connect(self.update)
self.timer.start(100)
def paintEvent(self, event):
# 문자열 그리기
qp = QPainter(self)
qp.setPen(Qt.black) # 펜 색상을 검은색으로 설정
qp.setFont(self.font)
qp.drawText(self.rect(), Qt.AlignCenter, self.text)
def resizeEvent(self, event):
# 윈도우 크기 조정
self.setFixedSize(self.width, self.height)
if __name__ == '__main__':
# 입력할 문자열 설정
text = 'Hello, world!'
# QApplication 초기화
app = QApplication(sys.argv)
# OverlayWidget 생성
widget = OverlayWidget(text)
widget.show()
# QApplication 실행
sys.exit(app.exec())
아니 근데 종료가 안되네… chatGPT 멍…청이는 필자다. 명령어를 제대로 입력하지 않았다.
Ctrl+z, c ,x 다 눌러도 안됨
Ctrl + Alt + Del. 로 강제 종료 후 종료 키 만들어 달라해서 넣어줬다.
근데 알고 봤더니 오버레이 텍스트가 다른 창들에 가려졌다.
"chatGPT 텍스트 맨 앞으로 오게 해줘"
이렇게 하나씩 기능을 추가해서 변경할 수 있었다.
3. 결론
chatGPT 만세
끝.
도움이 되셨다면 더 좋은 정보 공유를 위해 광고 클릭 부탁 드립니다 :)
0 댓글