c++ - 如何在多个 QT 图形 View 小部件之间同步移动

标签 c++ qt qgraphicsview

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

这是 GUI 的样子:

图像比较界面

最佳答案

好吧,每次我使用 QGraphicsView 时,我都会将它子类化,因为它没有提供我“公开”所需的一切。

不过,对于您的情况,我相信这很简单:

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

如果您愿意,可以调用一些插槽来执行不止一对一的操作:

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

关于c++ - 如何在多个 QT 图形 View 小部件之间同步移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43147334/

相关文章:

c++ - CLIon - 使用 SDL_TTF 的 undefined reference

c++ - QTableWidget 与 QTableView

c++ - 在 Windows 上将 TagLib 编译成 Qt C++ 项目

Qt在场景/ View 的中心添加项目

python - Pyside2 我怎样才能移动盒子?

c++ - LuaBridge 回调(将 lua 函数传递给 c++)

c++ - QMetaObject::invokeMethod() 在用于调用 QListWidget::addItem() 时返回 false

c++ - 如何通过QGraphicsProxy调整QGraphicScene中添加的QWidget的大小?

c++ - 这是微软实现 std::thread 的一个大错误吗?

qt - 在 Qt 中添加到空组合框时出错