파이썬 (pythoon)

파이썬 PyQt6 스타일링 - setStyleSheet

working for you 2023. 6. 28. 10:20
반응형

PyQt6를 사용하여 개발자는 시각적으로 매력적이고 사용자 친화적인 GUI 애플리케이션을 구축할 수 있습니다. PyQt6 스타일링은 CSS와 유사한 구문을 사용하여 GUI의 모양을 사용자 지정할 수 있습니다. 이 글에서는 파이썬 PyQt6 스타일링 - setStyleSheet 에 대해 공부해 보겠습니다.

 

[목차]
1. 파이썬 PyQt6 스타일링 이해하기
2. PyQt6 환경 설정
3. CSS와 유사한 구문을 사용한 기본 스타일 지정
4. 위젯에 스타일 적용
5. 선택기 유형 및 의사 상태
6. 고급 스타일링 기법
7. 외부 스타일 시트 사용
8. 스타일 충돌 및 상속 처리
9. 사용자 지정 위젯 스타일 지정
10. 전체코드 보기
11. 결론 및 의견

 

 

setStyleSheet

 

1. 파이썬 PyQt6 스타일링 이해하기

PyQt6 스타일링은 유연하고 직관적인 방법을 제공하여 PyQt6 위젯의 기본 모양을 변환하는 유용한 기술입니다.

 

 

2. PyQt6 환경 설정

PyQt6 스타일링을 위해서는 PyQt6을 설치해야 합니다. 설치가 완료되면 PyQt6 애플리케이션을 만들 준비가 된 것입니다.

 

 

3. CSS와 유사한 구문을 사용한 기본 스타일 지정

QPushButton 위젯의 배경색, 글꼴, 패딩 및 테두리 속성을 수정할 수 있습니다.

button.setStyleSheet("background-color: #4CAF50;")

button.setStyleSheet("font: bold 14px;"
                     "padding: 10px;"
                     "border: 2px solid #555555;")

 

 

4. 위젯에 스타일 적용

스타일 시트를 QApplication 또는 상위 위젯에 할당하여 여러 위젯에 적용할 수 있습니다.

app.setStyleSheet("QPushButton {"
                  "    background-color: #4CAF50;"
                  "    color: white;"
                  "    padding: 10px;"
                  "    border: none;"
                  "}")

 

 

5. 선택기 유형 및 의사 상태

PyQt6 스타일링은 유형 선택기, 클래스 선택기 및 ID 선택기와 같은 다양한 선택기 유형을 지원하고 의사 상태를 활용하여 특정 위젯 상태를 대상으로 지정할 수 있습니다.

button.setStyleSheet("QPushButton:hover {"
                     "    background-color: #55aaff;"
                     "}")

 

 

6. 고급 스타일링 기법

그라데이션 배경, 상자 그림자, 전환 및 애니메이션 등 고급 기술을 제공합니다.

button.setStyleSheet("background: qradialgradient(cx: 0.5, cy: 0.5, radius: 1,"
                     "stop: 0 #ff0000, stop: 1 #0000ff);")

 

 

7. 외부 스타일 시트 사용

외부 스타일 시트를 사용하여 코드에서 스타일 정의를 분리하여 재사용성과 유지 관리를 촉진할 수 있습니다.

app.setStyleSheet("file_path/style.qss")

 

 

8. 스타일 충돌 및 상속 처리

서로 다른 스타일 정의 간에 충돌이 발생할 수 있으므로 QStyle 클래스를 활용하여 개별 위젯에 대한 특정 스타일을 설정해야 합니다. PyQt6 스타일 지정은 상속을 지원하므로 여러 위젯에 적용할 수 있는 스타일 클래스를 만들 수 있습니다.

 

 

9. 사용자 지정 위젯 스타일 지정

PyQt6을 사용하여 사용자 지정 위젯을 만들고 매끄럽게 스타일을 지정할 수 있습니다.

class CustomLabel(QLabel):
    def __init__(self, text):
        super().__init__(text)
        self.setStyleSheet("color: red; font-size: 20px;")

 

 

10. 전체코드 보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import sys
from PyQt6.QtWidgets import QApplication, QWidget, QPushButton, QLabel
 
 
def main():
    # Create the application instance
    app = QApplication(sys.argv)
 
    # Section 4: Applying Styles to Widgets
    app.setStyleSheet("QPushButton {"
                      "    background-color: #4CAF50;"
                      "    color: white;"
                      "    padding: 10px;"
                      "    border: none;"
                      "}")
 
    # Section 9: Styling Custom Widgets
    class CustomLabel(QLabel):
        def __init__(self, text):
            super().__init__(text)
            self.setStyleSheet("color: red; font-size: 20px;")
 
    # Create a window
    window = QWidget()
 
    # Section 3: Basic Styling with CSS-like Syntax
    button = QPushButton("Click me", window)
    button.setStyleSheet("font: bold 14px;"
                         "padding: 10px;"
                         "border: 2px solid #555555;")
 
    # Section 6: Advanced Styling Techniques
    button.setStyleSheet("background: qradialgradient(cx: 0.5, cy: 0.5, radius: 1,"
                         "stop: 0 #ff0000, stop: 1 #0000ff);")
 
    # Section 9: Styling Custom Widgets
    label = CustomLabel("Custom Label")
 
    # Set window properties
    window.setWindowTitle("PyQt6 Styling Example")
    window.setGeometry(100100400200)
 
    # Display the window
    window.show()
 
    # Execute the application
    sys.exit(app.exec())
 
 
if __name__ == "__main__":
    main()
 
cs

실행화면

파이썬 PyQt6

 

 

11. 결론 및 의견

지금까지 파이썬 PyQt6 스타일링 - setStyleSheet 에 대해 알아봤습니다. 프로그램의 완성도를 높이기 위해서 디자인 적용을 위해 꼭 필요한 기능이니 숙지해두시면 좋습니다.

 

 

[관련글]

[파이썬 (pythoon)] - PyQt6을 사용하여 간단한 계산기를 만드는 방법

 

PyQt6을 사용하여 간단한 계산기를 만드는 방법

Python 라이브러리인 PyQt6을 사용하여 간단한 계산기를 만드는 방법을 살펴봅니다. PyQt6는 Python의 단순성과 Qt 프레임워크의 광범위한 기능을 결합하여 대화형 애플리케이션을 구축하는 데 탁월한

2toy.net

[파이썬 (pythoon)] - PyQt6를 사용한 간단한 로그인 프로그램 만들기

 

PyQt6를 사용한 간단한 로그인 프로그램 만들기

데스크톱 애플리케이션 또는 웹 기반 플랫폼을 개발하더라도, 견고한 로그인 메커니즘을 구현하여 사용자 데이터를 보호하고 개인 정보를 보호하는 것이 중요합니다. 이 글에서는 PyQt6를 사용

2toy.net

[정보 및 유용한 팁] - 챗GPT 란? (CHAT GPT 사용)

 

챗GPT 란? (CHAT GPT 사용)

챗GPT 란 무엇일까요? 요즘 너무 핫하다 못해 마치 옆에 있는 선생님처럼 느껴지는 이 인공지능 AI에 대해서 이해하기 쉽게 정리하려 합니다. 결론적으로 챗GPT에게 질문을 하면, 형식적인 답이 아

2toy.net

[html 자바스크립트 study] - html은 프로그래밍 언어가 아닙니다 - 오해와 진실

 

html은 프로그래밍 언어가 아닙니다 - 오해와 진실

웹 개발에 관심 있는 많은 사람들이 HTML(HyperText Markup Language)을 프로그래밍 언어로 오해하고 있습니다. 그러나 HTML은 사실 프로그래밍 언어가 아닙니다. 이 글에서는 HTML이 프로그래밍 언어가 아

2toy.net

[파이썬 (pythoon)] - python tkinter photoimage 사진 이미지 넣는 방법

 

python tkinter photoimage 사진 이미지 넣는 방법

파이썬 GUI 프로그램 개발시 사진을 적용하기 위해서는 PIL 라이브러리에 ImageTK를 활용하면 됩니다. python tkinter photoimage 사진 넣는 방법 및 옵션, 그리고 여러개 사진 넣는 예제까지 같이 공부해

2toy.net

반응형