-
PYSIDE6 팔레트PYTHON(파이썬)/PYSIDE6(GUI) 2024. 10. 24. 06:38728x90반응형
팔레트는 애플리케이션에서 사용되는 색상 집합을 정의합니다. 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, QLabelfrom PySide6.QtGui import QPalette, QColorfrom 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 sysfrom PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QLabelfrom 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 아이콘 (0) 2024.10.24 PYSIDE6 스타일 (0) 2024.10.24 PYSIDE6 QT리소스 시스템 (2) 2024.10.24 PYSIDE6 QT디자이너 사용하기 (0) 2024.10.24