gpt4 book ai didi

c++ - Qt 自定义小部件如何将 View 更改通知 ScrollArea 父级

转载 作者:行者123 更新时间:2023-11-30 03:07:07 25 4
gpt4 key购买 nike

我正在编写一个图像查看器作为自定义 Qt 小部件(参见:https://github.com/dov/Qviv),现在我陷入了如何让我的小部件通知父 QScrollArea 视口(viewport)变化的问题,从而告诉它移动滚动条。例如。如果图像查看器因按键而更改缩放系数,则滚动条需要更改其页面大小。

一种方法是让小部件显式检查父级是否为 QScrollArea,然后显式调用其方法以通知它任何更改。

当然,我还需要将 ScrollArea 的变化与图像的内部 View 联系起来,但那是另一个问题。而且我需要削减无限递归,其中小部件报告更改到滚动条,滚动条报告小部件的更改等。

编辑 20:15 Wednesday (GMT/UTC) 试图向 Vjo 和我自己澄清我需要什么。

我想要实现的是相当于一个 Gtk 小部件,该小部件已分配了一对连接到水平和垂直滚动条的 GtkAdjustment。在我的小部件 GtkImageViewer 中,QvivImageViewer 是基于它的,每当我由于某些内部事件(例如按键)而更改 View 时,我都会更新 GtkAdjustment。滚动条与此类更改相关联,并相应更新。 GtkImageViewer 还监听 GtkAdjustment 的变化,因此如果用户滚动滚动条,GtkImageViewer 会更新此信息并可以更改其 View 。我的问题是,在 Qt 中是否有任何类似于 GtkAdjustment 的东西,您可以连接到它以进行更改和更新,在这种情况下,更新将传播到所有监听器?

因此我不希望 ScrollArea 成为 QvivImageViewer 的一部分,但如果用户将 QvivImageViewer 放在 ScrollArea 中,我希望与其进行双向通信,以便滚动条反射(reflect)小部件的内部状态。

最佳答案

最简单的方法是将 QResizeEvent 事件从您的小部件对象发送到 QScrollArea 对象。

关于c++ - Qt 自定义小部件如何将 View 更改通知 ScrollArea 父级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6040665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com