2012-02-06 5 views
0

問題:私のアプリのツールバーをウィンドウ枠から引き出してフロートさせると、再びドッキングできません。私のウィンドウ階層はかなり複雑なので、スティックでどの部分を突き刺して振る舞うのかわからない。Qtツールバーはリドロックしません

My Qtアプリケーションは、中央ウィジェットとしてstackWidgetを使用します。スタックに含まれているウィジェットの1つでは、ツールバーとグラフィックスビューが必要です。そのツールバーをフロートさせると、グラフィックス表示が拡大されて画面全体が消費され、ツールバーが再びドッキングできるように縮小されません。

関連コードは以下のとおりです。私は何が起こっているのか確認するために、独自のプロジェクトでそれを立ち往生してきたので、マイナスヘッダー内のいくつかの余分な定義が、これはコンパイルする必要がありますスタックウィジェットの

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はそのサイズに不満かもしれません。

まず、トラブルスタックを見つけます。次に、ウィンドウサイズを大きくしたり、ウィジェットレイアウトを変更したり、スタック内のサブウィジェットのサイズ制約を変更したりして、ツールバーをドッキングさせることができます。

関連する問題