본문 바로가기
PYTHON(파이썬)/PYSIDE6(GUI)

PYSIDE6 팔레트

by eplus 2024. 10. 24.

팔레트는 애플리케이션에서 사용되는 색상 집합을 정의합니다. Qt에서 팔레트를 사용하여 위젯의 기본 색상, 텍스트 색상, 배경 색상 등을 설정할 수 있습니다. 이 장에서는 팔레트를 사용하여 애플리케이션의 색상 테마를 설정하는 방법을 살펴보겠습니다.

 

#### QPalette 클래스

QPalette 클래스는 애플리케이션과 위젯의 색상을 관리하는 데 사용됩니다. 팔레트는 다양한 색상 역할을 정의하며, 이러한 역할을 사용하여 위젯의 다양한 부분에 색상을 적용할 수 있습니다.

 

**주요 색상 역할**

- QPalette.Window: 창의 배경색

- QPalette.WindowText: 창의 텍스트 색상

- QPalette.Base: 입력 위젯의 배경색

- QPalette.AlternateBase: 입력 위젯의 대체 배경색

- QPalette.ToolTipBase: 툴팁의 배경색

- QPalette.ToolTipText: 툴팁의 텍스트 색상

- QPalette.Text: 일반 텍스트 색상

- QPalette.Button: 버튼의 배경색

- QPalette.ButtonText: 버튼의 텍스트 색상

- QPalette.BrightText: 강조된 텍스트 색상

- QPalette.Highlight: 선택된 항목의 배경색

- QPalette.HighlightedText: 선택된 항목의 텍스트 색상

 

#### 팔레트 설정

애플리케이션의 전역 팔레트를 설정하려면 QApplication 객체에 팔레트를 설정할 수 있습니다.

 

**전역 팔레트 설정 예제**

```python

import sys

from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton

from PySide6.QtGui import QPalette, QColor

 

app = QApplication(sys.argv)

 

palette = QPalette()

palette.setColor(QPalette.Window, QColor("#f0f0f0"))

palette.setColor(QPalette.WindowText, QColor("#000000"))

palette.setColor(QPalette.Base, QColor("#ffffff"))

palette.setColor(QPalette.AlternateBase, QColor("#e0e0e0"))

palette.setColor(QPalette.ToolTipBase, QColor("#ffffff"))

palette.setColor(QPalette.ToolTipText, QColor("#000000"))

palette.setColor(QPalette.Text, QColor("#000000"))

palette.setColor(QPalette.Button, QColor("#dcdcdc"))

palette.setColor(QPalette.ButtonText, QColor("#000000"))

palette.setColor(QPalette.BrightText, QColor("#ff0000"))

palette.setColor(QPalette.Highlight, QColor("#3399ff"))

palette.setColor(QPalette.HighlightedText, QColor("#ffffff"))

 

app.setPalette(palette)

 

window = QMainWindow()

window.setWindowTitle("Palette Example")

 

button = QPushButton("Click Me")

window.setCentralWidget(button)

 

window.show()

app.exec()

```

이 예제에서는 QPalette 객체를 생성하고 다양한 색상 역할을 설정한 다음, QApplication 객체에 팔레트를 설정합니다.

 

#### 위젯별 팔레트 설정

팔레트를 특정 위젯에만 적용할 수도 있습니다. 이를 통해 개별 위젯의 색상을 커스터마이즈할 수 있습니다.

 

**위젯별 팔레트 설정 예제**

```python

import sys

from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton

from PySide6.QtGui import QPalette, QColor

 

app = QApplication(sys.argv)

 

window = QMainWindow()

window.setWindowTitle("Widget Palette Example")

 

button = QPushButton("Click Me")

window.setCentralWidget(button)

 

button_palette = button.palette()

button_palette.setColor(QPalette.Button, QColor("#ffcccc"))

button_palette.setColor(QPalette.ButtonText, QColor("#660000"))

button.setPalette(button_palette)

 

window.show()

app.exec()

```

이 예제에서는 QPushButton 위젯의 팔레트를 개별적으로 설정하여 버튼의 배경색과 텍스트 색상을 변경합니다.

 

#### 다크 모드 팔레트

다크 모드를 지원하는 팔레트를 설정할 수도 있습니다. 다크 모드는 어두운 배경색과 밝은 텍스트 색상을 사용하여 눈의 피로를 줄이는 데 도움이 됩니다.

 

**다크 모드 팔레트 설정 예제**

```python

import sys

from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton

from PySide6.QtGui import QPalette, QColor

 

app = QApplication(sys.argv)

 

dark_palette = QPalette()

dark_palette.setColor(QPalette.Window, QColor("#2e2e2e"))

dark_palette.setColor(QPalette.WindowText, QColor("#ffffff"))

dark_palette.setColor(QPalette.Base, QColor("#3c3c3c"))

dark_palette.setColor(QPalette.AlternateBase, QColor("#4d4d4d"))

dark_palette.setColor(QPalette.ToolTipBase, QColor("#ffffff"))

dark_palette.setColor(QPalette.ToolTipText, QColor("#ffffff"))

dark_palette.setColor(QPalette.Text, QColor("#ffffff"))

dark_palette.setColor(QPalette.Button, QColor("#4d4d4d"))

dark_palette.setColor(QPalette.ButtonText, QColor("#ffffff"))

dark_palette.setColor(QPalette.BrightText, QColor("#ff0000"))

dark_palette.setColor(QPalette.Highlight, QColor("#3399ff"))

dark_palette.setColor(QPalette.HighlightedText, QColor("#000000"))

 

app.setPalette(dark_palette)

 

window = QMainWindow()

window.setWindowTitle("Dark Mode Palette Example")

 

button = QPushButton("Click Me")

window.setCentralWidget(button)

 

window.show()

app.exec()

```

이 예제에서는 어두운 색상과 밝은 텍스트 색상을 사용하여 다크 모드 팔레트를 설정합니다.

 

### 결론

이 장에서는 Qt QPalette 클래스를 사용하여 애플리케이션의 색상 테마를 설정하는 방법을 알아보았습니다. 팔레트를 사용하여 전역 색상 설정, 개별 위젯 색상 설정, 다크 모드 지원 등을 구현할 수 있습니다. 다음 장에서는 아이콘을 사용하여 애플리케이션의 인터페이스를 더욱 풍부하게 만드는 방법을 알아보겠습니다.

import sys

from PySide6.QtWidgets import QApplication, QLabel
from PySide6.QtGui import QPalette, QColor
from PySide6.QtCore import Qt

app = QApplication(sys.argv)
palette = QPalette()
palette.setColor(QPalette.Window, QColor(0, 128, 255))
palette.setColor(QPalette.WindowText, Qt.white)
app.setPalette(palette)

window = QLabel("Palette Test")
window.show()

app.exec()
import sys
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabel
from PySide6.QtGui import QPalette, QColor

app = QApplication(sys.argv)

dark_palette = QPalette()
dark_palette.setColor(QPalette.Window, QColor("#2e2e2e"))
dark_palette.setColor(QPalette.WindowText, QColor("#ffffff"))
dark_palette.setColor(QPalette.Base, QColor("#3c3c3c"))
dark_palette.setColor(QPalette.AlternateBase, QColor("#4d4d4d"))
dark_palette.setColor(QPalette.ToolTipBase, QColor("#ffffff"))
dark_palette.setColor(QPalette.ToolTipText, QColor("#ffffff"))
dark_palette.setColor(QPalette.Text, QColor("#ffffff"))
dark_palette.setColor(QPalette.Button, QColor("#4d4d4d"))
dark_palette.setColor(QPalette.ButtonText, QColor("#ffffff"))
dark_palette.setColor(QPalette.BrightText, QColor("#ff0000"))
dark_palette.setColor(QPalette.Highlight, QColor("#3399ff"))
dark_palette.setColor(QPalette.HighlightedText, QColor("#000000"))

app.setPalette(dark_palette)

window = QMainWindow()
window.setWindowTitle("Dark Mode Palette Example")

button = QPushButton("Click Me")
window.setCentralWidget(button)

label = QLabel("Dark Mode")
window.setCentralWidget(label)

window.show()
app.exec()

 

728x90
반응형

'PYTHON(파이썬) > PYSIDE6(GUI)' 카테고리의 다른 글

PYSIDE6 QT 스타일 시트(QSS)  (0) 2024.10.24
PYSIDE6 아이콘  (1) 2024.10.24
PYSIDE6 스타일  (1) 2024.10.24
PYSIDE6 QT리소스 시스템  (2) 2024.10.24
PYSIDE6 QT디자이너 사용하기  (0) 2024.10.24