我有一个滚动区域,小部件驻留在其中,比如scrollWidget。我基于scrollValue在scrollWidget上加载了不同的图像。基本上,在滚动时,滚动条应该滚动,但scrollArea中的小部件不应该移动。根据新的滚动值,我将在scrollWidget中更新图像。
检查源代码,发现
void QScrollArea::scrollContentsBy(int, int)
负责移动小部件。
所以,试图覆盖函数和重写函数,我只是返回,什么都不做。
//overriden function
void scrollContentsBy(int dx, int dy)
{
return;
}
在scrollValueChanged上调用重写的函数。即使这样,scrollWidget也会以某种方式滚动。
还有其他人在scrollArea中移动scrollWidget吗?
提前致谢。
答案 0 :(得分:0)
您应该使用自己的QScrollBar
实现一个小部件,而不是QScrollArea
。只需在您的小部件上放置QScrollBar
并手动控制它。也许最好实现QAbstractScrollArea
抽象类,这可以帮助处理滚动(但可能会引起其他麻烦,正如Qt子帧中经常发生的那样......)。