2012-02-06 2 views
0

문제점 : 내 응용 프로그램의 도구 모음을 창 프레임에서 당겨서 플로트 시키면 다시 고정시킬 수 없습니다. 내 창 계층 구조는 상당히 복잡하므로 스틱으로 어느 부분을 찌르면 작동시킬 수 있는지 모르겠습니다.Qt 도구 모음이 다시 이동하지 않습니다

My Qt 앱은 stackWidget을 중앙 위젯으로 사용합니다. 스택에 포함 된 위젯 중 하나에서 툴바와 그래픽보기가 필요합니다. 해당 도구 모음을 뜨면 그래픽보기가 전체 화면 공간을 차지하도록 확장되고 도구 모음이 다시 도킹 할 수 있도록 축소되지 않습니다.

관련 코드는 다음과 같습니다. 내가 무슨 일이 일어나고 있는지보고 자신의 프로젝트에 붙어, 그래서 마이너스 헤더에 몇 가지 추가 정의이 컴파일해야합니다 스택 위젯

QVBoxLayout* layout0 = new QVBoxLayout(ui->centralWidget); 
stack = new QStackedWidget(); 
layout0->addWidget(stack); 

QWidget* screen1 = new QWidget(); 
QVBoxLayout* layout1 = new QVBoxLayout(screen1); 
QToolButton* tool = new QToolButton(); 
tool->setIcon(QIcon(":/images/sample.bmp")); 
tool->setIconSize(QSize(400,400)); 
QObject::connect(tool,SIGNAL(clicked()),this,SLOT(onPage2())); 
layout1->addWidget(tool); 
stack->addWidget(screen1); 

QWidget* screen2 = new QWidget(); 
QVBoxLayout* layout2 = new QVBoxLayout(screen2); 
QGraphicsView* gview = new QGraphicsView(); 
layout2->addWidget(gview); 
stack->addWidget(screen2); 

QToolBar* toolbar = new QToolBar(); 
toolbar->addAction("home",this,SLOT(onPage1())); 
this->addToolBar(Qt::TopToolBarArea,toolbar); 
+0

이 작업을 타이핑하는 과정에서 툴바의 최소 크기를 설정하면 문제가 해결되는 것으로 나타났습니다. – AndrewS

답변

0

, Qt는 요구하는 스택 내의 각 위젯 도구 모음을 추가하기 전에 도구 모음을 추가 할 수있는 충분한 공간이 있습니다. 이상하게도 도구 모음을 도킹 해제하거나 창을 확장하기 전에 레이아웃이 화면에 맞을 수도 있지만 Qt는 그 크기에 만족하지 않을 수 있습니다.

먼저 문제 스택을 찾으십시오. 그런 다음 창 크기를 늘리거나 위젯 레이아웃을 수정하거나 스택 내의 하위 위젯 크기 제한을 변경하여 도구 모음이 도킹되도록합니다.

관련 문제