Как узнать, скрыт ли QLayoutItem прокруткой в ​​QScrollArea?

У меня есть вопрос, аналогичный заданному в Как узнать, является ли QListWidgetItem скрыто прокруткой? и ответ на этот вопрос не решил мою проблему.

В основном у меня есть QScrollArea с QGridLayout. Этот макет имеет много QToolButtons. В зависимости от некоторых условий все эти QToolButtons необходимо обновить. Обновлять их все всегда не так эффективно, поэтому я хочу обновить только те кнопки, которые видны в текущем активном окне. Как я могу этого добиться? isVisible() здесь не поможет.

Заранее спасибо!


person Gangadhar    schedule 02.03.2015    source источник


Ответы (1)


Вы можете использовать QWidget::visibleRegion(), чтобы проверить, виден ли виджет, и могут ли происходить события рисования для виджета.

if (!button->visibleRegion().isEmpty())
{
    //button is visible
}
person Lahiru Chandima    schedule 02.03.2015