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 디자인 스타일로 바꿀 수 있다. 다음은 런타임에 동적으로 스타일을 바꾸는 것을 보여 준다.
다음과 같이 런타임중에 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 | 86174 |
10 | Qt 응용프로그램에서 PDF 문서 렌더링 | makersweb | 2021.09.23 | 679 |
9 | VirtualKeyboard 스타일 커스터 마이징 | makersweb | 2022.03.13 | 464 |
8 | 단일 인스턴스 Qt 응용 프로그램(Single-instance Application) | makersweb | 2022.06.23 | 706 |
7 | clazy 로 13개의 시그널, 슬롯 오류 해결 | makersweb | 2022.08.23 | 578 |
6 | QProcess 보안 권고 리뷰 | makersweb | 2022.09.18 | 602 |
5 | VTK 를 사용해서 강력한 시각화(3D, Plotting, Chart)Qt 응용프로그램 개발하기 | makersweb | 2022.10.16 | 1670 |
4 | Qt Property(속성) 시스템 | makersweb | 2023.01.08 | 1889 |
» | Widgets(C++) 기반의 기본 스타일을 Dark 테마 및 Material 디자인 스타일로 바꾸기 | makersweb | 2023.01.28 | 1313 |
2 | Qt 하이브리드 애플리케이션(Hybrid App) 개발 | makersweb | 2023.02.08 | 1030 |
1 | Qt 응용프로그램에 Web 구성 요소를 표시 with Servo | makersweb | 2024.04.27 | 162 |