[macOS]PyQt5 로 윈도우 창 아이콘 설정이 안될때

Legday_Dev·2024년 2월 27일

에러

목록 보기
3/4
post-thumbnail

Python 으로 PyQt5 프레임워크로 윈도우 창을 만들 때 창 상단에 아이콘을 따로 설정 할 수 있지만 Mac 에서는 안된다 !!(애플이 디자인의 통일성을 위해 막은걸로 추정됨...)

사용환경

  1. macOS Sonoma 14.2.1
  2. Visual Studio Code
  3. Python 3.9.6
  4. PyQt5 5.15.10

code

  • 원래는 QWidget 을 상속받은 클래스에서 setWindowIcon() 함수에서 QICon('이미지경로')를 붙여주면 상단에 아이콘이 바껴야 한다.
  • 하지만 애플 정책인지 macOS에서는 작동하지가 않는다.
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class myApp(QWidget):
    def __init__(self) -> None:
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(500, 250, 1000, 600)  # 시작위치(x,y) 창크기(width,height)
        self.setWindowTitle("My First Windows App")
        self.setWindowIcon(QIcon('아이콘 이미지 경로'))
        self.show()  # 필수 메서드

app = QApplication(sys.argv)  # 실행할 때 파라미터를 받아 처리할 수 있다.
instance = myApp()  # 객체 생성
app.exec_()  # 실행
  • 아래 그림처럼 윈도우 상단에 아이콘은 없고 Dock 에 로켓모양으로 아이콘이 뜬다.
  • 그래서 macOS 에서는 윈도우창 아이콘이 아닌 작업표시줄에 나타나는 아이콘을 변경할 수 있다.
import sys
from PyQt5.QtCore import Qt
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *


class myApp(QWidget):
    def __init__(self) -> None:
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(500, 250, 1000, 600)  # 시작위치(x,y) 창크기(width,height)
        self.setWindowTitle("My First Windows App")
        self.setWindowIcon(QIcon('아이콘 이미지 경로'))
        self.show()  # 필수 메서드

app = QApplication(sys.argv)  # 실행할 때 파라미터를 받아 처리할 수 있다.
instance = myApp()  # 객체 생성
app.setWindowIcon(QIcon("./images/windows.png"))
app.exec_()  # 실행
  • 아까전 물로켓 아이콘에서 임의로 정한 윈도우 아이콘으로 바뀐것을 확인할 수 있다.

<참고자료>
[PyQt5][Mac OS] How To Display Icon In The Mac Dock
PyQt를 이용한 윈도우 꾸미기

profile
백엔드개발자

0개의 댓글