2013-02-27 3 views

답변

2

ixSci가 언급 한대로 setTitleBarWidget()을 사용하면이 문제를 해결할 수 있습니다. 나는 훨씬 간단한 솔루션을 찾고 있는데 이상적으로는 QSS (Qt 스타일 시트)을 사용하고 있다고 말했 다. 그래서 QDockWidget의 소스 코드를 파고 들자 마자 내 요구 사항에 더 잘 맞는 대안을 찾았습니다.

나는이 floatclose 버튼이 만들어진 곳을 찾고 싶었습니다. 그것은 QDockWidget.cppQDockWidgetPrivate::init() 방법 안에 있습니다.

는 예로서, float 버튼은 다음과 같이 작성됩니다

QAbstractButton *button = new QDockWidgetTitleButton(q); 
button->setObjectName(QLatin1String("qt_dockwidget_floatbutton")); 
QObject::connect(button, SIGNAL(clicked()), q, SLOT(_q_toggleTopLevel())); 
layout->setWidgetForRole(QDockWidgetLayout::FloatButton, button); 

지금 필요한 건 Qt는 스타일 시트의 유연성을 사용하는 것입니다, 나는이 경우, 개체 이름을 필요로하는 위해 그것은 "qt_dockwidget_floatbutton는"

그래서 당신이 할 수있는 QDockWidgetCloseFloat 버튼에 툴팁을 설정해야 모두가 응용 프로그램 스타일 시트 스타일의 두 줄에 다음을 추가하는 것입니다

QAbstractButton#qt_dockwidget_closebutton{qproperty-toolTip: "Close";} 
QAbstractButton#qt_dockwidget_floatbutton{qproperty-toolTip: "Restore";} 
1

당신은 당신이 원하는 제목 위젯 구현하고 setTitleBarWidget()로 설정할 수 있습니다. 위젯에서 필요한 툴팁이있는 버튼을 추가 할 수 있습니다.