QScrollbar滚动到中心

时间:2013-12-12 14:09:50

标签: c++ qt qtgui

我想将QScrollbar滚动到中心;我觉得这很容易,但是

QScrollBar *bar = ui->scrollArea->horizontalScrollBar();
bar->setValue(bar->maximum()/2);
bar->update();
ui->scrollArea->update();

不能胜任这项工作。出了什么问题?

2 个答案:

答案 0 :(得分:1)

在Qt的文档中,实际文档长度由

定义

document length = maximum() - minimum()+ pageStep()(参见QScrollBar类参考)

所以尝试替换

int center = (min+max)/2;

int center = (max+min+bar->pagestep())/2;

答案 1 :(得分:0)

QScrollBar也有最低限度。所以以滚动条为中心:

int max = bar->maximum();
int min = bar->minimum();
int center = (  min + max ) / 2;
bar->setValue( center );