728x90
728x90
PyQt에서 플랫폼 독립적인(Platform Independent) 스타일 적용하는 방법 (Fusion)
들어가며
- 윈도우와 맥에서 표시되는 PyQt 프로그램의 모습은 다르다. 그 이유는 플랫폼에 영향을 받기 때문이다.
- 이렇게 플랫폼에 영향을 받지 않고, OS에 상관없이 동일하게 PyQt 프로그램이 표현되도록 하는 방법이 있다.
방법
- PyQt에서는 플랫폼 독립적(Platform Independent)인 스타일 플러그인인 @Fusion@을 제공한다.
- 이 스타일 플러그인을 이용하여 스타일을 적용시키면 OS에 상관 없이 동일한 UI가 표시될 수 있도록 할 수 있다.
- 이 스타일 플러그인을 사용하기 위해서는 다음과 같이 @QStyleFactory@ 모듈을 불러와야 한다.
from PyQt5.QtGui import QStyleFactory
QApplication에 스타일 설정하기
QApplication.setStyle(QStyleFactory.create("fusion"))
환경 변수나 명령줄 인수를 사용하여 스타일 설정하기
- 다음과 같이 환경 변수나 명령줄 인수를 사용하여 스타일을 설정할 수 있다.
QApplication.setStyle("fusion")
예제 코드
from PyQt5.QtWidgets import QApplication, QMainWindow, QTabWidget
from PyQt5.QtGui import QStyleFactory
import sys
class MyMainWindow(QMainWindow):
def __init__(self):
super().__init__()
self.tab_widget = QTabWidget()
self.setCentralWidget(self.tab_widget)
self.tab_widget.setStyleSheet("background-color: #F0F0F0;")
# 사용할 스타일을 "fusion"으로 설정합니다.
QApplication.setStyle(QStyleFactory.create("fusion"))
# 또는 환경 변수나 명령줄 인수를 사용하여 스타일을 설정할 수 있습니다.
# QApplication.setStyle("fusion")
if __name__ == "__main__":
app = QApplication(sys.argv)
main_window = MyMainWindow()
main_window.show()
sys.exit(app.exec_())
참고 사이트
728x90
728x90
'Framework > PyQt' 카테고리의 다른 글
[PyQt] self.function(param)과 function(self, param)의 차이점 (0) | 2024.10.12 |
---|---|
[PyQt] QTableWidget 안의 항목 검색 및 복원 기능 구현 방법 (0) | 2024.01.29 |
[PyQt] QTableWidget과 SQLite3를 연동하여 구현한 CRUD 프로그램 (0) | 2023.11.27 |
[PyQt] 맥(Mac)에서 윈도우(Windows)와 비슷하게 메뉴 표시하는 방법 (0) | 2023.09.21 |
[PyQt] QTableWidget에 1,000 단위로 쉼표(,)를 추가하고 숫자 정렬 기능 추가하기 (0) | 2023.07.20 |
[PyQt] 간단한 CRUD(Create, Read, Update, Delete) 프로그램 (0) | 2023.07.18 |
[PyQt] QTimer.singleShot 함수를 특정 시간 간격으로 여러번 실행하는 방법 (0) | 2023.07.16 |
[PyQt] QAction에서 triggered 시그널을 사용할 때, 인자를 triggered 메서드에 전달하는 방법 (0) | 2023.07.08 |