2016-06-24 42 views
1

我有一個滾動區域,一個控件位於其中,比如說scrollWidget。基於scrollValue,我在scrollWidget上加載了不同的圖像。基本上,在滾動時,滾動條應滾動,但scrollArea內的小部件不應移動。基於新的滾動值,我將更新scrollWidget中的圖像。如何在QScrollArea中甚至在滾動時不移動內容

經過在源代碼中,發現

void QScrollArea::scrollContentsBy(int, int) 

負責移動小窗口。

因此,試圖覆蓋功能和重寫的功能,我只是回來,什麼都不做。

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

重寫的函數在scrollValueChanged上被調用。即使那麼scrollWidget以某種方式滾動。

是否有其他人在scrollArea內移動scrollWidget?

在此先感謝。

回答

0

你應該實現一個自己的小工具QScrollBar,而不是QScrollArea。只需在您的小部件上放置一個QScrollBar並手動控制它。實現QAbstractScrollArea抽象類可能會有助於處理卷軸(但可能會導致其他問題,如Qt子幀中經常發生的情況)。