如何在多个QT图形视图窗口小部件之间同步移动

时间:2017-03-31 18:25:59

标签: c++ qt qgraphicsview

我正在尝试构建一个可以并排比较图像的工具。为此,我在QT中使用了三个图形视图小部件。它们都以相同的速率放大,但我似乎无法在网上找到关于如何链接图像运动的任何信息(也就是 - 用鼠标拖放)。这个功能甚至可以构建吗?

以下是GUI的样子:

图像比较GUI

1 个答案:

答案 0 :(得分:1)

好吧,每次我使用QGraphicsView时,我最终都会对它进行子类化,因为它没有提供我需要的所有“公共”。

在你的情况下,我相信这很简单:

connect(graphicsView1->verticalScrollBar(), SIGNAL(valueChanged(int)),
        graphicsView2->verticalScrollBar(), SLOT(setValue(int)));
connect(graphicsView2->verticalScrollBar(), SIGNAL(valueChanged(int)),
        graphicsView1->verticalScrollBar(), SLOT(setValue(int)));

如果您愿意,请拨打一些广告位以执行超过1对1的操作:

void MyClass::scrollGraphicsView1(int value)
{
    graphicsView1->verticalScrollBar()->setValue(value);
}
void MyClass::scrollGraphicsView2(int value)
{
    graphicsView2->verticalScrollBar()->setValue(value);
}