问:如何确定QScrollArea中的小部件是否可见?

Nya*_*uko 5 c++ qt qscrollarea

有人建议我重新实现QWheelEvent处理程序并检查每个子窗口小部件visibleRegion是否为0.

还有更好的建议吗?

dav*_*ler 3

当您添加小部件时。给它起个名字。

QWidget* myWidget = new QWidget;
myWidget->setObjectName( "myWidget" );
...
//create scroll area
//add a layout to the scroll area
...
scrollArea->layout()->addWidget( myWidget );
Run Code Online (Sandbox Code Playgroud)

然后,像这样检查可见性:

QWidget* widget = scrollArea->findChild< QWidget* >( "myWidget" );
std::cout << widget->isVisible() << std::endl;
Run Code Online (Sandbox Code Playgroud)

您可以保留小部件名称列表,以便更轻松地循环并检查何时准备好。