강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

민소리님의 프로필 이미지
민소리

작성한 질문수

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

도전! GUI 프로그램 완성하기

Pyside6 배경색 변경

작성

·

222

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

 

Pyside6 배경색이 디폴트가 다크모드로 나오는것 같은데 너무 어두워서 밝게 하고 싶으나 방법을 잘 모르겠어요

image.png

색상을 변경하고 싶은데 어떻게 해야 하나요?

답변 2

0

스타트코딩님의 프로필 이미지
스타트코딩
지식공유자

음.. 뭔가 Qt Designer 쪽에 설정 값이 하나 바뀐거 같은데요 아래는

o1 모델의 답변인데 설정 값을 확인하면서 수정해 보시겠어요??

 

1. Qt Designer에서 스타일시트(StyleSheet) 확인하기

 

Qt Designer에서 폼(Form)이나 위젯(Widget)을 선택한 뒤, Property (속성) 창styleSheet 항목이 설정되어 있는지 확인합니다.

  • 만약 styleSheetbackground-color: #2b2b2b;처럼 어두운 색이 지정되어 있다면, 그 부분을 지워주거나 원하는 색상으로 수정합니다

  • 예:

    background-color: #ffffff; /* 흰색으로 */

     

확인 방법

  1. Qt Designer에서 해당 UI를 엽니다

  2. 왼쪽 혹은 오른쪽에 있는 Property 창에서 가장 상단의 Form(또는 원하는 위젯)을 선택

  3. Scroll을 내려 styleSheet 항목이 있는지 확인

  4. 만약 값이 들어있다면, 수정하거나 삭제 후 저장


2. 전체 팔레트(Palette)나 Qt 스타일 변경

Qt는 OS나 사용자 설정에 따라 다크 모드 스타일을 자동으로 가져오기도 합니다. 이를 강제로 밝게 바꾸려면 팔레트(Palette)스타일을 변경할 수 있습니다.

(1) 팔레트로 설정하기

import sys
from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtGui import QPalette, QColor

app = QApplication(sys.argv)

# 전체 앱 팔레트 설정
light_palette = QPalette()
light_palette.setColor(QPalette.Window, QColor(255, 255, 255))  # 창 배경 흰색
light_palette.setColor(QPalette.WindowText, QColor(0, 0, 0))   # 텍스트 검정
# 필요에 따라 Button, Base, Text 등 다른 영역 색도 지정 가능

app.setPalette(light_palette)

window = QWidget()
window.setWindowTitle("테스트 윈도우")
window.show()

sys.exit(app.exec())

 

  • 위 코드처럼 app.setPalette()를 이용해 전체 팔레트를 화이트 톤으로 강제 지정하면, OS의 다크 모드라도 창 배경이 흰색으로 보이게 할 수 있습니다

  • 필요하면 QPalette.Button, QPalette.Highlight, QPalette.Base 등도 직접 설정 가능합니다

(2) Qt 스타일(Fusion, Windows 등) 지정하기

app.setStyle("Fusion") # 또는 'Windows', 'Fusion', 'macintosh' 등

 

  • Fusion 스타일은 Qt에서 제공하는 기본 크로스플랫폼 스타일입니다

  • 일부 OS에서 다크 모드일 경우 자동으로 진하게 보일 수 있는데, 이때 팔레트나 스타일시트로 밝게 변경 가능합니다


3. 시스템 다크 모드 영향

윈도우 10/11, macOS, 리눅스에서 다크 모드를 활성화한 경우, PySide6가 시스템 테마를 인식해 어둡게 표시될 수 있습니다.

  • 이 경우 Qt 쪽에서 자동으로 색을 조정해주는 경우가 있으니, 시스템 테마를 라이트 모드로 변경해보면 달라지는지 테스트해볼 수 있습니다

  • 하지만 사용자가 다크 모드를 선호할 수도 있으니, 프로그램에서만 라이트 테마가 되도록 하고 싶다면, 위의 팔레트 설정 또는 스타일시트를 직접 지정해주는 편이 좋습니다


4. Qt Designer 자체 설정 (환경설정)

Qt Designer 툴 자체도 다크 테마로 동작할 수 있습니다.

  • Tools > Preferences (또는 Edit > Preferences)에서 테마 설정이 있다면, 라이트 테마로 변경해볼 수 있습니다

  • 디자이너 툴에서 보이는 미리보기와 실제 실행 결과가 다를 수도 있으므로, 최종적으로는 파이썬 코드에서 스타일시트 혹은 팔레트로 제어하는 방법을 권장합니다


요약 정리

  1. Qt Designer에서 폼이나 위젯에 styleSheet가 설정되어 있는지 확인합니다

    • 어두운 배경 색상 코드가 들어있다면 제거하거나 밝은 색(#FFFFFF 등)으로 수정합니다

  2. 팔레트(QPalette)로 전체 창 배경을 하얗게 지정할 수 있습니다

  3. 스타일을 “Fusion” 등으로 지정하고, 팔레트를 밝게 설정해서 쓰면, OS가 다크 모드여도 밝게 표시할 수 있습니다

  4. 시스템 다크 모드 설정 여부도 확인해봅니다

  5. Qt Designer 환경설정에서 다크 테마를 사용하고 있다면 라이트 테마로 바꿔볼 수도 있습니다

이 과정을 하나씩 확인해보시면, PySide6의 배경 색이 너무 어둡게 보이지 않도록 손쉽게 수정할 수 있을 것입니다.

😀도움이 되셨길 바랍니다. 감사합니다.😀

0

안녕하세요, 인프런 AI 인턴입니다. 민소리님.

PySide6에서 배경색을 변경하는 방법은 스타일시트를 활용하여 가능합니다. Qt는 CSS 스타일시트를 사용하여 위젯의 외관을 꾸밀 수 있습니다. 이를 통해 GUI 요소의 색상, 모양 등을 쉽게 변경할 수 있습니다. 아래는 PySide6에서 배경색을 변경하는 예제입니다.

예제 코드

from PySide6.QtWidgets import QApplication, QWidget
from PySide6.QtGui import QColor

class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 배경색을 흰색으로 설정
        self.setStyleSheet("background-color: white;")
        self.setWindowTitle('PySide6 배경색 변경 예제')
        self.setGeometry(300, 300, 400, 200)
        self.show()

if __name__ == '__main__':
    app = QApplication([])
    ex = MyApp()
    app.exec()

위 코드에서 self.setStyleSheet("background-color: white;") 부분을 통해 윈도우의 배경색을 흰색으로 설정했습니다. 원하는 색상코드를 CSS 색상코드로 넣어주시면 됩니다. 예를 들어, 밝은 회색은 “background-color: #eeeeee;” 로 설정할 수 있습니다.

더 많은 정보는 아래의 PySide6 스타일 문서를 참고하시기 바랍니다:
- Qt Style Sheets Reference

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

민소리님의 프로필 이미지
민소리

작성한 질문수

질문하기