ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • PYSIDE6 팔레트
    PYTHON(파이썬)/PYSIDE6(GUI) 2024. 10. 24. 06:38
    728x90
    반응형

    팔레트는 애플리케이션에서 사용되는 색상 집합을 정의합니다. 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 아이콘  (0) 2024.10.24
    PYSIDE6 스타일  (0) 2024.10.24
    PYSIDE6 QT리소스 시스템  (2) 2024.10.24
    PYSIDE6 QT디자이너 사용하기  (0) 2024.10.24
Designed by Tistory.