即使滚动

时间:2016-06-24 12:51:39

标签: qt qscrollarea

我有一个滚动区域,小部件驻留在其中,比如scrollWidget。我基于scrollValue在scrollWidget上加载了不同的图像。基本上,在滚动时,滚动条应该滚动,但scrollArea中的小部件不应该移动。根据新的滚动值,我将在scrollWidget中更新图像。

检查源代码,发现

void QScrollArea::scrollContentsBy(int, int)

负责移动小部件。

所以,试图覆盖函数和重写函数,我只是返回,什么都不做。

//overriden function
    void scrollContentsBy(int dx, int dy)
    {
       return;
    }

在scrollValueChanged上调用重写的函数。即使这样,scrollWidget也会以某种方式滚动。

还有其他人在scrollArea中移动scrollWidget吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

您应该使用自己的QScrollBar实现一个小部件,而不是QScrollArea。只需在您的小部件上放置QScrollBar并手动控制它。也许最好实现QAbstractScrollArea抽象类,这可以帮助处理滚动(但可能会引起其他麻烦,正如Qt子帧中经常发生的那样......)。