한국어
Qt
 

Qt Widgets 기반의 응용프로그램을 개발할 때 Qt 스타일 시트를 작성하여 스타일을 사용자 정의할 수 있다. Qt 스타일 시트는 QStyle을 서브클래싱하여 위젯의 모양을 사용자 정의할 수 있는 강력한 메커니즘이다.

다음의 간단한 예제는 응용 프로그램에서 모든 QLineEdit 의 배경색을 노란색으로 설정한다.

qApp->setStyleSheet("QLineEdit { background-color: yellow }");

특정 대화 상자의 자식(또는 손자 또는 손자들)인 QLineEdit에만 속성을 적용하려면 다음과 같이 한다.

myDialog->setStyleSheet("QLineEdit { background-color: yellow }");

Qt 스타일 시트의 구문 규칙이 CSS와 거의 동일하기 때문에 이미 CSS를 알고 있다면 빠르게 작성할 수 있겠지만 처음이라면 어려울 수 있다. 하지만 누군가가 이미 작성해서 공개한 Qt-Material 를 사용하면 쉽게 Dark테마 와 Material 디자인 스타일로 바꿀 수 있다. 다음은 런타임에 동적으로 스타일을 바꾸는 것을 보여 준다.

 

qt-material_example.zip

 

다음과 같이 런타임중에 stylesheet 파일을 읽어 바꿀 수 있다.

...
QFile f(":resource/theme/style.qss");

if (!f.exists())   {
    printf("Unable to set stylesheet, file not found\n");
}

else   {
    f.open(QFile::ReadOnly | QFile::Text);
    QTextStream ts(&f);
    qApp->setStyleSheet(ts.readAll());
}
...

 

https://github.com/UN-GCPDS/qt-material

https://github.com/ColinDuquesnoy/QDarkStyleSheet

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 86615
79 C++로 구현된 모델을 QML의 ListView에서 참조 file makersweb 2019.09.07 4967
78 QSocketNotifier로 파일 디스크립터의 활동감지 makersweb 2019.08.28 1750
77 MCU용 Qt에 대해서 makersweb 2019.08.22 1933
76 [Qt News] Qt for Python을 위한 기술 비전 j2doll 2019.08.20 1632
75 열거형(enum)을 QML에서 사용하는 방법과 문자열(QString)로 얻기 makersweb 2019.08.20 3964
74 [Qt News] Qt 6 기술 비전 (Technical vision for Qt 6) [2] j2doll 2019.08.08 2130
73 [Qt News] Qt6 Git 개발 초기 단계 시작하기 j2doll 2019.08.02 2343
72 [Qt] Google Play의 향후 요구 사항을 준수하는 방법 [2] j2doll 2019.07.29 981
71 Qt기반의 오픈소스 프로젝트들 - 2 운영자 2019.07.21 4040
70 QML, 이미지, 폰트등을 바이너리 리소스로 만들기 makersweb 2019.06.24 3542
69 Qt Creator에서 임베디드 장치로 deploy설정(Custom Process Step) file makersweb 2019.06.15 2218
68 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 6301
67 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 10205
66 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 6303
65 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 15097
64 QML에서 멀티 스레드(multithreading) 프로그래밍 file makersweb 2019.05.25 2688
63 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 12116
62 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 5506
61 Q_D매크로와 d-pointer file makersweb 2019.05.07 768
60 가상키보드(Qt Virtual Keyboard)를 사용하는 방법 [32] file makersweb 2019.05.03 222624