stylesheet는 QT의 매력 중 하나죠.
사용자가 임의로 편하게 widget의 모양을 변경가능하니 어찌나 편한지.
MFC로 각 control을 변경하려면 완전 수작업을 무지해야하나 이건 참 편하네요.
최근 나온 Windows 기반의 언어들도 이런식으로 진행되는 듯 한데 일단 QT가 open source라 더 매력적입니다.
일단 stylesheet를 작성하고 그걸 어떻게 사용할 수 있는지 살펴보겠습니다.
우선 코드는 아래와 같이 작성합니다.
뭔가 그려야하는데 paintEvent 함수를 재정의해서 QStyleOption이라는 class를 사용합니다.
그리고 style()->drawPrimitive(...) 함수를 호출하면
stylesheet에 명시한데로 widget을 그려줍니다.
MyWidget.cpp
void QMyWidget::paintEvent(QPaintEvent *e)
{
QPainter p(this);
QStyleOption styleOption;
styleOption.init(this);
style()->drawPrimitive(QStyle::PE_Widget, &styleOption, &p, this);
...
}
그럼 stylesheet는 이런식으로 구성해보죠
QMyStack
{
background-color: black;
border-radius: 6px;
}
QMyStack:hover
{
border: 1px solid #ffaa00;
}
이런식으로 Widget의 이름을 명시하고
각 option을 넣어줍니다.
배경은 검은색 border radius를 6으로 설정
마우스가 widget위에 위치하면 주황색으로 태두리 그리기.
요런정도로 설명이 되겠죠.
실제 전체 코드를 만들어 넣고 stylesheet를 적용하면
모서리가 둥근 사각형 형태의 바탕의 widget이 그려지는 것을 확인할 수 있습니다.
'Qt' 카테고리의 다른 글
QML Plugin QmlType 생성 (0) | 2018.06.10 |
---|---|
QT TextEdit Block & Char Formatting (0) | 2016.08.08 |
QT build static library (0) | 2015.06.05 |
QT : 특정 디렉토리의 하위 디렉토리 포함한 파일 검색 (0) | 2014.02.14 |
QT : moc_XXX 파일에 multiple definition of 링크 에러 메시지 (0) | 2014.01.28 |