2013-04-22 4 views
0

clicked() 신호를 내 보낸 여러 이미지가 표시된 MainWindow.cpp 클래스가 있습니다. 일단 클릭하면 MainWindow 내에서 고정 된 크기의 위젯을 열고이 위젯을 MainWindow 클래스 내부에있는 한 드래그 할 수있게하려고합니다.Draggable QWidget

이 위젯 클래스를 작성하려고 시도하는 예제 코드는 특히 Qt MainWindow Example입니다. 그러나 dockwindow 중 하나가 디스플레이 주위로 드래그되면 운영 체제 전용 제목 표시 줄 (최대화, 최소화 및 창 닫기)이 표시됩니다. 이 제목 표시 줄을 표시하고 싶지 않습니다.

이 클래스의 드래그 가능한 위젯을 만들려면 어떻게해야합니까? 무효 위젯으로 설정

+0

읽어보기 : http://stackoverflow.com/questions/11172420/moving-object-with-mouse/ – hank

답변

0

확인 setTitleBarWidget

작동합니다

It is not possible to remove a title bar from a dock widget. 
However, a similar effect can be achieved by setting a default constructed QWidget 
as the title bar widget. 

편집 : 요청에 의해 : 당신은 다음과 같습니다 예에서

yourDockableWidget->setTitleBarWidget(new QWidget(yourDockableWidget)); 

을, 당신이 그것을 할 수 생성자 :

ColorSwatch::ColorSwatch(const QString &colorName, QWidget *parent, Qt::WindowFlags flags) 
: QDockWidget(parent, flags) 
{ 
/*...*/ 

setTitleBarWidget(new QWidget(this)); 

/*...*/ 
} 

도킹 해제하면 이제 위젯에 SO 제목 표시 줄이 없습니다.

+0

게시물의 두 번째 부분을 확장 할 수 있습니까? – DomX23

+0

Qt docs 링크에서 정말 간단합니다.하지만 끝났습니다. – Trompa

+0

부모를 QWidget에 추가하도록 편집되어 있으므로 paretn 일 때 자체를 파괴합니다. – Trompa