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)
垂直滾動條與此類似
int
barwidth = ui->scrollarea->horizontalscrollbar()->width();
//水平滾動條寬度
int
imagewidth = label->width();
//影象寬度
int
max = ui->scrollarea->horizontalscrollbar()->maximum();
//水平滾動條可滾動的最大值
int
value = 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...