как синхронизировать ползунки на двух 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());
}