как синхронизировать ползунки на двух qgraphicsview?

у меня есть два qgraphicsview как синхронизировать их ползунки? то есть, если тянуть за один, то и менялся другой?введите сюда описание изображения


Ответы (1 шт):

Автор решения: Sergey Tatarincev

два варианта. напрямую связать сигналы одного со слотами второго:

connect(ui->graphicsView->horizontalScrollBar(),SIGNAL(sliderMoved(int)),ui->graphicsView2->horizontalScrollBar(),SLOT(setValue(int)));
connect(ui->graphicsView->verticalScrollBar(),SIGNAL(sliderMoved(int)),ui->graphicsView2->verticalScrollBar(),SLOT(setValue(int)));

или через свой слот (если понадобится доп. обработка)

connect(ui->graphicsView->horizontalScrollBar(),SIGNAL(sliderMoved(int)),this,SLOT(slotSliderMoved(int))); 
connect(ui->graphicsView->verticalScrollBar(),SIGNAL(sliderMoved(int)),this,SLOT(slotSliderMoved(int)));
....
void MainWindow::slotSliderMoved(int p)
{
    ui->graphicsView2->verticalScrollBar()->setValue(ui->graphicsView->verticalScrollBar()->value());
    ui->graphicsView2->horizontalScrollBar()->setValue(ui->graphicsView->horizontalScrollBar()->value());

}
→ Ссылка