2017-05-23 13 views
0

나는 다음 코드를 사용합니다QDockWidget의 제목 표시 줄 높이를 어떻게 바꿀 수 있습니까?

int SWStyle::pixelMetric(PixelMetric which, const QStyleOption *option, const QWidget *widget) const 
{ 
    switch (which) 
    { 
    case PM_DefaultFrameWidth: 
     return 1; 
    case PM_TitleBarHeight: 
     return 80; 
    default: 
     return QCleanlooksStyle::pixelMetric(which, option, widget); 
    } 
} 

-------------------------------------------- 
myQdockWidget->setStyle(new SWStyle); 

는 제목 표시 줄의 높이를 변경하려면,하지만 그것은 프레임 폭을 변경할 수 있습니다 작동하지 않습니다.

QDockWidget의 제목 표시 줄 높이를 변경할 수 있습니까?

답변

0

Qt 소스 (버전 5.8)를 보면 제목 높이를 계산할 때 PM_TitleBarHeight을 사용하지 않는 것처럼 보입니다. 대신은 QFontMetrics::height()의 조합합니다 (Qt 소스에서) QStyle::PM_DockWidgetTitleMargin의 픽셀 메트릭 ...

QFontMetrics titleFontMetrics = q->fontMetrics(); 
int mw = q->style()->pixelMetric(QStyle::PM_DockWidgetTitleMargin, 0, q); 

return qMax(buttonHeight + 2, titleFontMetrics.height() + 2*mw); 

그래서 QStyle::PM_DockWidgetTitleMargin 좋은 출발점이 될 수 있습니다에 대한 사례를 제공하기 위해 SWStyle::pixelMetric 재정을 업데이트를 사용합니다.

이외에도 사용자 정의 제목 위젯을 QDockWidget::setTitleBarWidget으로 전달할 수 있습니다.