如何知道QScrollArea中是否通过滚动隐藏了QLayoutItem?

时间:2015-03-02 07:56:23

标签: qt visible qscrollarea qgridlayout

我在How to know if QListWidgetItem is hidden by scroll?中提出了类似的问题,但问题的答案并没有解决我的问题。

基本上我有一个QGridLayout的QScrollArea。这种布局有很多QToolButtons。根据某些条件,所有这些QToolButtons都需要更新。要更新所有这些内容总是效率不高,所以我只想更新当前活动窗口中可见的按钮。我怎样才能做到这一点? isVisible()在这里没有帮助。

提前致谢!

1 个答案:

答案 0 :(得分:1)

您可以使用QWidget::visibleRegion()检查窗口小部件是否可见,并为窗口小部件绘制事件。

if (!button->visibleRegion().isEmpty())
{
    //button is visible
}