스타일링

Qt의 내장 위젯은 QStyle 클래스를 사용하여 거의 모든 그리기를 수행합니다. QStyle 은 GUI의 모양과 느낌을 캡슐화하는 추상 베이스 클래스로, 위젯을 동등한 네이티브 위젯과 똑같이 보이게 하거나 위젯에 사용자 정의 모양을 부여하는 데 사용할 수 있습니다.

Qt는 Qt가 지원하는 다양한 플랫폼의 네이티브 모양을 에뮬레이트하는 QStyle 서브클래스 집합을 제공합니다(QWindowsStyle, QMacStyle 등). 이러한 스타일은 Qt GUI 모듈에 내장되어 있으며, 다른 스타일은 Qt의 플러그인 메커니즘을 사용하여 사용할 수 있습니다.

스타일 요소를 그리는 대부분의 함수는 네 개의 인자를 받습니다:

  • 그릴 그래픽 요소를 지정하는 열거형 값
  • 해당 요소를 렌더링하는 방법과 위치를 지정하는 QStyleOption 객체
  • 요소를 그리는 데 사용해야 하는 QPainter 객체
  • 그리기가 수행되는 QWidget 객체(선택 사항)

스타일은 QStyleOption 클래스에서 그래픽 요소를 렌더링하는 데 필요한 모든 정보를 가져옵니다. 위젯은 스타일이 특수 효과(예: macOS의 애니메이션 기본 버튼)를 수행하는 데 필요한 경우 마지막 인수로 전달되지만 필수는 아닙니다. 실제로 QStyle 는 위젯뿐만 아니라 모든 페인트 장치에 그리는 데 사용할 수 있으며, 이 경우 위젯 인수는 0 포인터입니다.

페인트 시스템은 QPainter 에서 상속하는 QStylePainter 클래스도 제공합니다. QStylePainter 는 위젯 내에서 QStyle 요소를 그리기 위한 편의 클래스이며, QStyle 의 API 위에 구현된 일련의 상위 수준 그리기 함수로 QPainter 를 확장합니다. QStylePainter 사용의 장점은 매개변수 목록이 상당히 짧아진다는 것입니다.

QIcon

QIcon 클래스는 다양한 모드와 상태의 확장 가능한 아이콘을 제공합니다.

QIcon 아이콘의 상태, 모드 및 크기를 반영하는 픽셀맵을 생성할 수 있습니다. 이러한 픽스맵은 아이콘에 사용할 수 있는 픽스맵 세트에서 생성되며, 특정 동작을 나타내는 아이콘을 표시하기 위해 Qt 위젯에서 사용됩니다.

QIcon 객체의 렌더링은 QIconEngine 클래스에서 처리합니다. 각 아이콘에는 요청된 크기, 모드 및 상태로 아이콘을 그릴 책임이 있는 해당 아이콘 엔진이 있습니다.

위젯 스타일 및 모양에 대한 자세한 내용은 스타일 및 스타일 인식 위젯을 참조하세요.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.