2016-05-04 16 views
0

私のUIデザイナーでは、私はScrollAreaウィジェットを持っていて、その後私はMainWindow.cppにQGraphicSceneを作成し、 QGraphicsビュー。私は新しいウィジェットを作成し、そのウィジェットにQVBoxLayoutを与えて、それが自動サイズになるようにします(これは私の理解にとって正しいことです)。QTで "ui-> scrollArea-> horizo​​ntalScrollBar() - > setValue(0)"は効果がありません

次に、ui->scrollArea->setWidget(widget);を使用して、この新しいウィジェットを私のscrollViewの子にします。

私はこのシーンをナビゲートできるスクロールバーがあるので、これはすべて正しいようです。しかしながら; ui->scrollArea->horizontalScrollBar()->setValue(0);行を使用しても、スクロールバーの値には何の影響もありません。

scene = new QGraphicsScene(); 
scene->setSceneRect(0,0,2500,2500); 
view = new QGraphicsView(scene); 

QWidget *widget = new QWidget; 
view->setBackgroundBrush(Qt::white); 
QVBoxLayout* bLayout = new QVBoxLayout(widget); 
ui->scrollArea->setWidget(widget); 

bLayout->addWidget(view); 

widget->show(); 

ui->scrollArea->horizontalScrollBar()->setValue(0); 
ui->scrollArea->verticalScrollBar()->setValue(0); 
+2

あなたが見るスクロールバーは、 'ui-> scrollArea'に属していないかもしれませんが、' view'ですか? – thuga

答えて

0

あなたは(thugaによるコメントで指摘したように)正しいスクロールバーに対処することを確認している場合は、あなたのスクロール領域がその初期化後に変更された場合、多分確認してください。私はbahaviourについてはわかりませんが、ウィジェット内のテキストを変更した場合、スクロールバーに影響が出ると思います。

あなたはそれらを再適用するウィジェットのイベントのいくつかをキャッチする必要があります。

ui->scrollArea->horizontalScrollBar()->setValue(0); 
ui->scrollArea->verticalScrollBar()->setValue(0); 

それが解決しない場合は、あなたが

ui->scrollArea->verticalScrollBar()->value() 

でスクロールバーの値を追跡することにより、デバッグしようとすべきであるとあなたのセットがうまく適用されているかどうか、そしてオーバーライドされているかどうかを確認してください

ここで示されている方法のいくつかを試みることもできますが、 setValue of ScrollBar Don't work at first time

+0

ええ、私は「間違った」スクロールバーを使用している可能性があると思っています。値は0から変わることはありません:/しかし、それは私には意味をなさない、これらのバーがどこから来たのかわかりません。 – user3599288

関連する問題