C++ QScrollbar滚动到中心

C++ QScrollbar滚动到中心,c++,qt,qtgui,C++,Qt,Qtgui,我想将我的QScrollbar滚动到中间;我认为这很容易,但是 QScrollBar *bar = ui->scrollArea->horizontalScrollBar(); bar->setValue(bar->maximum()/2); bar->update(); ui->scrollArea->update(); 他做不到这项工作。出了什么问题?一个QScrollBar也有一个最小值。因此,要使滚动条居中: int max = bar->

我想将我的
QScrollbar
滚动到中间;我认为这很容易,但是

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

他做不到这项工作。出了什么问题?

一个
QScrollBar
也有一个最小值。因此,要使滚动条居中:

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

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

文档长度=最大值()-最小值()+页面步长()(参见QScrollBar类参考)

所以试着换一个

int center = (min+max)/2;


这很好,但没什么区别。minimum()始终返回0
int center = (max+min+bar->pagestep())/2;