【发布时间】:2012-08-24 01:19:53
【问题描述】:
请原谅这个可能很无聊的问题,但是在尝试隐藏 QWidget 时,调用 setVisible(False)、setShown(False) 和 hide() 有什么区别?
【问题讨论】:
-
我认为它们在内部都调用了相同的代码。
请原谅这个可能很无聊的问题,但是在尝试隐藏 QWidget 时,调用 setVisible(False)、setShown(False) 和 hide() 有什么区别?
【问题讨论】:
没有区别。它们只是实现同一目标的不同方式。 (实际上 setShown 并不是 API 的一部分,看起来它是 Qt 3 的兼容性东西,所以最好不要使用它。)
【讨论】:
show() 只是setVisible(true) 的一个便利函数。
同样hide() 等价于setVisible(false)
在内部,相同的代码用于呈现您的视图。
以http://doc.qt.io/archives/qt-4.7/qwidget.html#show 为例。据了解,
void QWidget::show () [slot] 显示小部件及其子小部件。 该函数等价于 setVisible(true)。
您会在 Qt 中找到很多这样的功能,只是为了让事情变得更加直观,尤其是在小部件和视图方面。
【讨论】:
hide() 确实与setVisible( false ) 相同,但show() 不仅仅是设置可见性。根据窗口的默认状态,它将设置窗口状态(引发窗口状态更改通知),然后然后调用setVisible( true )。