怎樣獲取滾動條的範圍

2021-10-24 07:53:25 字數 1491 閱讀 1635

qscrollarea有兩個滾動條,以水平滾動條舉例(假設其已經顯示了)

先看看水平滾動條是如何定義自己的滾動範圍的:

int imagewidth; //影象寬度

int barwidth = scrollarea->horizontalscrollbar()->width();//滾動條寬度

那麼滾動範圍就是 0 ~ imagewidth - barwidth

0是最小值,影象寬度減去水平滾動條寬度就是最大值

int max = imagewidth - barwidth;

水平滾動條有個事件,valuechanged(int),當前位置變化時發生,可以這樣連線:

connect(scrollarea->horizontalscrollbar(),signal(valuechanged(int)),this,slot(valuechanged(int)));

要判斷是否到最大值很簡單:

if(value == max)//value是滾動條當前位置,由valuechanged(int)訊號傳來,也可以不用訊號,隨時獲取:

int value = scrollarea->horizontalscrollbar()->value();

判斷滾動條是否在最小範圍就簡單了:

if(value ==0)

垂直滾動條與此類似

intbarwidth = ui->scrollarea->horizontalscrollbar()->width();//水平滾動條寬度

intimagewidth = label->width();//影象寬度

intmax = ui->scrollarea->horizontalscrollbar()->maximum();//水平滾動條可滾動的最大值

intvalue = ui->scrollarea->horizontalscrollbar()->value();//獲取滾動條當前位置

if(imagewidth-barwidth == value)//當前值等於最大值

qdebug()<<"max";

if(value==0)//最小值

qdebug()<<"min";

獲取滾動條的寬度

做了乙個全屏的輪播圖,在設計師那發現問題,banner獲取的寬度是瀏覽器的寬度,在瀏覽器不是全屏的情況下開啟再放大瀏覽器,banner不能全屏顯示。問題其實很簡單,把獲取瀏覽器的寬度改為獲取螢幕寬度就可以了,但瀏覽器的滾動條會佔據一定的寬度,所以需要獲取瀏覽器的滾動條寬度,然後減去這部分寬度,就是b...

js獲取滾動條位置

獲取座標 ie event.x event.y 獲取滾動條位置 document.body.scrolltop 滾動條離頁面最上方的距離 document.body.scrollleft 滾動條離頁面最左方的距離 當我用js獲取當前垂直或者水平方向滾動條位置的時候,使用 document.body....

獲取滾動條的寬高

scrollwidth 是物件的實際內容的寬,不包邊線寬度,會隨物件中內容的多少改變 內容多了可能會改變物件的實際寬度 clientwidth 是物件可見的寬度,不包滾動條等邊線,會隨視窗的顯示大小改變。offsetwidth 是物件的可見寬度,包滾動條等邊線,會隨視窗的顯示大小改變。乙個scrol...