QScrollArea不会在QRadioButtons上自动滚动

时间:2015-12-24 11:52:21

标签: qt qscrollarea

我在QScrollArea

中有一些小部件
scrollArea     = new QScrollArea(&widget);
groupBoxLayout = new QVBoxLayout();
groupBox       = new QGroupBox();
title          = new QLabel();

groupBoxLayout->addWidget(title);

for(int i=0; i<WIDGETS_NUMBER; i++)
{
    buttons[i] = new QPushButton();
    buttons[i]->setFocusPolicy(Qt::FocusPolicy::StrongFocus);
    buttons[i]->installEventFilter(this);
    groupBoxLayout->addWidget(buttons[i]);
}
buttons[0]->setFocus();

现在只要buttons[]QPushButton s,QScrollArea就会自动滚动焦点更改。也就是说,当我使用向下箭头键移动按钮时,就在我到达窗口的底部边缘时,它会自动向下滚动。但是,当我将buttons[]更改为QRadioButton时,它会自动停止滚动。为什么会这样?当焦点到达边缘时,如何让它自动滚动?

当然,我可以检测到FocusIn事件,并在需要时手动滚动:

scrollArea->verticalScrollBar()->setValue(scrollArea->verticalScrollBar()->value()+SCROLL_VALUE);

但我希望它是自动的。

0 个答案:

没有答案