QT控件的visible属性

很多QT的新手设置是老手在使用QT控件的visible属性的时候,很容易犯错。比如show()或者setVisible(true)后,isVisible()应该返回true吧?但其实QT控件的visible属性是一个综合属性:“Calling setVisible(true) or show() sets the widget to visible status if all its parent widgets up to the window are visible. If an ancestor is not visible, the widget won't become visible until all its ancestors are shown. “ 。
在setVisible(true)后:调用 isVisible() 可能返回true或者false;调用 isHidden() 一定返回false。
在setVisible(false)后:调用isVisible()返回false;调用isHidden() 返回 true。
ps:show() 等价于 setVisible(true) 。 hide() 等价于 setVisible(false)。
从我的经验来看,其实大部分时候我们只是想判断控件自己的是否可见flag(也就是假定控件parent可见)。这时候使用 isHidden() 来判断比用isVisible()更符合需求,记得要取反。

你可能感兴趣的:(QT)